国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > 基礎知識 > 正文

vue指令的三要素都有哪些

2024-09-12 20:29:55
字體:
來源:轉載
供稿:網(wǎng)友
  這篇文章給大家分享的是有關vue指令的三要素有哪些的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
 
  vue指令的三要素是響應式、模板引擎和渲染。響應式是指當更新或者增加數(shù)據(jù)時,頁面會有響應,重新渲染對應的數(shù)據(jù);模板本質(zhì)上是字符串,模板最終轉換成js代碼。
 
  本文操作環(huán)境:windows10系統(tǒng)、Vue2.9.6版,DELL G3電腦。

  veu中的三要素
 
  響應式:vue如何監(jiān)聽到 data 每個屬性變化?
  模板引擎:vue的模板如何被解析,指令如何處理?
  渲染:vue 的模板如何被渲染成 html?以及渲染過程
  vue 如何實現(xiàn)是響應式
 
  Object.defineProperty
  模擬
 
  1) 什么是響應式
 
  修改 data 屬性之后, vue 立刻監(jiān)聽
 
  data 屬性被代理到 vm 上
 
  2) Object.defineProperty
 
  語法:
 
  Object.defineProperty(obj, prop, descriptor)
  參數(shù)說明:
 
  obj:必需。目標對象
  prop:必需。需定義或修改的屬性的名字
  descriptor:必需。目標屬性所擁有的特性
  基礎
 
  var obj = {
    name: 'zhangsan',
    age: 25
  }
  
  console.log(obj.name); // 獲取屬性的時候,如何監(jiān)聽
  obj.age = 26; // 賦值屬性的時候,如何監(jiān)聽
  我們用defineProperty方法實現(xiàn)上面的操作:如下
 
  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); // 可以監(jiān)聽到
  obj.name = 'lisi'; // 可以監(jiān)聽到
  使用defineProperty我們就可以監(jiān)聽到數(shù)據(jù)變化了。其中這個也是 vue 做響應工做核心的方法了。
 
  3) 模擬
 
  var mv = {}
  
  var data = {
    price: 100,
    name: 'zhangsan'
  }
  
  var key, value;
  for (key in data) {
  
    // 命中閉包。新建一個函數(shù),保證 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 函數(shù)
 
  render 函數(shù) 與 vdom
 
  1) 模板是什么
 
  本質(zhì):字符串
 
  有邏輯,如 v-if v-for等
 
  與 html 格式很像,但有很大的區(qū)別
 
  最終還要轉換成 html 來顯示
 
  模板最終必須轉換成 JS 代碼, 因為:
 
  有邏輯(v-if v-for),必須用 JS 才能實現(xiàn)( 圖靈完備)
 
  轉換為 html 渲染頁面,必須用 JS 才能實現(xiàn)
 
  因此,模板最重要轉換成一個 JS 函數(shù)
 
  基礎事例
 
   <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指令的三要素有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 明光市| 修水县| 福清市| 湖口县| 汶川县| 营山县| 新泰市| 江都市| 新和县| 民和| 沈阳市| 刚察县| 宁河县| 合山市| 德阳市| 龙南县| 临西县| 从化市| 凤台县| 澳门| 永兴县| 从江县| 平凉市| 河北区| 米易县| 瑞昌市| 江孜县| 太仓市| 嘉鱼县| 平利县| 海林市| 奉新县| 衡阳市| 湖北省| 闽清县| 龙陵县| 建湖县| 伊春市| 资阳市| 平罗县| 麦盖提县|