目錄
vue指令的三要素是什麼
首頁 web前端 Vue.js vue指令的三要素是什麼

vue指令的三要素是什麼

Mar 23, 2022 am 11:11 AM
vue

vue指令的三個要素是響應式、範本引擎和渲染。響應式是指當更新或增加資料時,頁面會有回應,重新渲染對應的資料;模板引擎本質上是字串,作為實例的識別使用;渲染指的是模板轉換成其他程式碼的過程。

vue指令的三要素是什麼

本文操作環境:windows10系統、Vue2.9.6版,DELL G3電腦。

vue指令的三要素是什麼

veu中的三要素

  • #回應式:vue如何監聽到 data 每個屬性變化?

  • 範本引擎:vue的範本如何被解析,指令如何處理?

  • 渲染:vue 的模板如何渲染成 html?以及渲染過程

vue 如何實作是響應式

Object.defineProperty
登入後複製

模擬

1) 什麼是響應式

修改 data 屬性之後, vue 立刻監聽

data 屬性被代理到 vm 上

2) Object.defineProperty

語法:

Object.defineProperty(obj, prop, descriptor)
登入後複製

參數說明:

  • obj:必要。目標物件

  • prop:必要。需定義或修改的屬性的名字

  • descriptor:必要。目標屬性所擁有的特性

基礎

var obj = {
  name: 'zhangsan',
  age: 25
}
 
console.log(obj.name); // 获取属性的时候,如何监听
obj.age = 26; // 赋值属性的时候,如何监听
登入後複製

我們用defineProperty方法實作上面的運算:如下

var obj = {}
 
var name = 'zhangsan'
 
Object.defineProperty(obj, "name", {
  get: function () {
    console.log('get');
    return name;
  },
  set: function (newVal) {
    console.log('set');
    name = newVal;
  }
});
 
console.log(obj.name); // 可以监听到
obj.name = 'lisi'; // 可以监听到
登入後複製

使用defineProperty我們就可以監聽到數據變化了。其中這個也是 vue 做回應工做核心的方法了。

3) 模擬

var mv = {}
 
var data = {
  price: 100,
  name: 'zhangsan'
}
 
var key, value;
for (key in data) {
 
  // 命中闭包。新建一个函数,保证 key 的独立的作用域
  (function (key) {
Object.defineProperty(mv, key, {
  get: function () {
    console.log('get');
    return data[key];
  },
  set: function (newVal) {
    console.log('set');
    data[key] = newVal
  }
})
  })(key);
}
登入後複製

vue的範本如何被解析

範本是什麼

render 函數

#render 函數 與 vdom

1) 模板是什麼

實質:字串

##有邏輯,如 v-if v-for等

與 html 格式很像,但有很大的差異

最後要轉換成 html 來顯示

模板最後必須轉換成 JS 程式碼, 因為:

有邏輯(v-if v-for),必須用 JS 才能實現( 圖靈完備)

轉換為 html 渲染頁面,必須用 JS 才能實現

#因此,模板最重要轉換成一個 JS 函數

基礎範例

 <div id="app">
    <div>
      <input v-model="title">
      <button v-on:click="add">submit</button>
    </div>
    <ul>
      <li v-for="item in list">{{item}}</li>
    </ul>
  </div>
登入後複製
以上就是一個模板。

【相關推薦:《

vue.js教學》】

以上是vue指令的三要素是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vue中echarts怎麼用 vue中echarts怎麼用 May 09, 2024 pm 04:24 PM

vue中echarts怎麼用

vue中的export default的作用 vue中的export default的作用 May 09, 2024 pm 06:48 PM

vue中的export default的作用

vue中map函數的用法 vue中map函數的用法 May 09, 2024 pm 06:54 PM

vue中map函數的用法

vue中event和$event區別 vue中event和$event區別 May 08, 2024 pm 04:42 PM

vue中event和$event區別

vue中onmounted作用 vue中onmounted作用 May 09, 2024 pm 02:51 PM

vue中onmounted作用

vue中export與export default區別 vue中export與export default區別 May 08, 2024 pm 05:27 PM

vue中export與export default區別

vue中的onmounted對應react哪個生命週期 vue中的onmounted對應react哪個生命週期 May 09, 2024 pm 01:42 PM

vue中的onmounted對應react哪個生命週期

vue中的鉤子是什麼 vue中的鉤子是什麼 May 09, 2024 pm 06:33 PM

vue中的鉤子是什麼

See all articles