国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

Vue底層實現(xiàn)原理總結

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:19:26
文檔

Vue底層實現(xiàn)原理總結

Vue底層實現(xiàn)原理總結:前言 最近在研究 剖析Vue原理&實現(xiàn)雙向綁定MVVM 這篇文章,一邊學習一邊總結一下自己的思考。 Vue是一個典型的MVVM框架,模型(Model)只是普通的JavaScript對象,修改它則視圖(View)會自動更新。這種設計讓狀態(tài)管理變得非常簡單而直觀。那么Vue是如何
推薦度:
導讀Vue底層實現(xiàn)原理總結:前言 最近在研究 剖析Vue原理&實現(xiàn)雙向綁定MVVM 這篇文章,一邊學習一邊總結一下自己的思考。 Vue是一個典型的MVVM框架,模型(Model)只是普通的JavaScript對象,修改它則視圖(View)會自動更新。這種設計讓狀態(tài)管理變得非常簡單而直觀。那么Vue是如何

前言

最近在研究 剖析Vue原理&實現(xiàn)雙向綁定MVVM 這篇文章,一邊學習一邊總結一下自己的思考。

Vue是一個典型的MVVM框架,模型(Model)只是普通的JavaScript對象,修改它則視圖(View)會自動更新。這種設計讓狀態(tài)管理變得非常簡單而直觀。那么Vue是如何把模型和視圖建立起關聯(lián)的呢?

實現(xiàn)原理概述

這是前言提到的文章里的代碼,一段典型的體現(xiàn)了Vue特點的代碼:

<div id="mvvm-app">
 <input type="text" v-model="word">
 <p>{{word}}</p>
 <button v-on:click="sayHi">change model</button> //點擊這個button,word的值會發(fā)生改變
</div>

<script src="./js/observer.js"></script>
<script src="./js/watcher.js"></script>
<script src="./js/compile.js"></script>
<script src="./js/mvvm.js"></script>
<script>
 var vm = new MVVM({
 el: '#mvvm-app',
 data: {
 word: 'Hello World!'
 },
 methods: {
 sayHi: function() {
 this.word = 'Hi, everybody!';
 }
 }
 });
</script>

ue實現(xiàn)這種數(shù)據(jù)雙向綁定的效果,需要三大模塊:

Observer:能夠對數(shù)據(jù)對象的所有屬性進行監(jiān)聽,如有變動可拿到最新值并通知訂閱者

Compile:對每個元素節(jié)點的指令進行掃描和解析,根據(jù)指令模板替換數(shù)據(jù),以及綁定相應的更新函數(shù)

Watcher:作為連接Observer和Compile的橋梁,能夠訂閱并收到每個屬性變動的通知,執(zhí)行指令綁定的相應回調(diào)函數(shù),從而更新視圖

Observer

Observer的核心是通過Obeject.defineProperty()來監(jiān)聽數(shù)據(jù)的變動,這個函數(shù)內(nèi)部可以定義setter和getter,每當數(shù)據(jù)發(fā)生變化,就會觸發(fā)setter。這時候Observer就要通知訂閱者,訂閱者就是Watcher。

Watcher

Watcher訂閱者作為Observer和Compile之間通信的橋梁,主要做的事情是:

  1. 在自身實例化時往屬性訂閱器(dep)里面添加自己
  2. 自身必須有一個update()方法
  3. 待屬性變動dep.notice()通知時,能調(diào)用自身的update()方法,并觸發(fā)Compile中綁定的回調(diào)

Compile

Compile主要做的事情是解析模板指令,將模板中的變量替換成數(shù)據(jù),然后初始化渲染頁面視圖,并將每個指令對應的節(jié)點綁定更新函數(shù),添加監(jiān)聽數(shù)據(jù)的訂閱者,一旦數(shù)據(jù)有變動,收到通知,更新視圖。

總結

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Vue底層實現(xiàn)原理總結

Vue底層實現(xiàn)原理總結:前言 最近在研究 剖析Vue原理&實現(xiàn)雙向綁定MVVM 這篇文章,一邊學習一邊總結一下自己的思考。 Vue是一個典型的MVVM框架,模型(Model)只是普通的JavaScript對象,修改它則視圖(View)會自動更新。這種設計讓狀態(tài)管理變得非常簡單而直觀。那么Vue是如何
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 99国产精品高清一区二区二区 | 国产一级特黄高清免费下载 | 国产成人精品一区二区视频 | 国产精品一区二区三区四区五区 | 亚洲最新在线观看 | 亚洲欧美日韩综合在线播放 | 国产欧美综合在线一区二区三区 | 日韩电影中文字幕在线网站 | 亚洲国产成人久久一区www | 欧美视频在线免费 | 欧美精品久久久亚洲 | 欧美日韩国产高清视频 | 亚洲欧美在线观看视频 | 黄网站免费在线观看 | 国产美女视频黄a视频免费全过程 | 日本天堂在线 | 国产精品久久久久9999小说 | 国产一区2区 | 人与动性xxxxx免费 | 欧美日韩在线高清 | 国产精品久久亚洲一区二区 | 欧美日韩一区二区三区视频 | 国产精品视频观看 | 久久婷婷色一区二区三区 | 欧美中文一区 | 伊人毛片 | 欧美色图第一页 | 精品一区二区三区18 | 欧美另类日韩中文色综合 | 久久久一区二区三区不卡 | 波多野结衣系列在线观看 | 欧美性猛交一区二区三区精品 | 国产成人精品免费视频大全可播放的 | 永久在线毛片免费观看 | 在线日韩视频 | 欧美伊人久久大香线蕉综合69 | 欧美夜夜爽 | 亚洲va欧美ⅴa国产va影院 | 韩日一区二区 | 国产一区二区在线免费观看 | 成人美女黄网站色大色费 |