<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答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í)行指令綁定的相應回調函數(shù),從而更新視圖

        Observer

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

        Watcher

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

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

        Compile

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

        總結

        聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(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
        主站蜘蛛池模板: 久久国产亚洲观看| 亚洲综合国产精品| 久久亚洲AV成人无码国产最大| 1000部啪啪毛片免费看| 亚洲天堂在线播放| 污污网站免费观看| 亚洲精品视频在线播放| 18禁无遮挡无码国产免费网站| 亚洲不卡在线观看| 成年女人视频网站免费m| 亚洲另类自拍丝袜第五页| 国产国产成年年人免费看片| 日本高清免费中文在线看| 亚洲熟妇无码八AV在线播放| 成人网站免费看黄A站视频| 亚洲精品国产啊女成拍色拍| 91黑丝国产线观看免费| 美女视频黄免费亚洲| 国产精品极品美女免费观看 | 免费人成在线视频| 亚洲欧美日韩综合久久久| 免费在线观看理论片| 在线观看片免费人成视频播放| 亚洲AV福利天堂一区二区三| 99久久精品日本一区二区免费| 亚洲国产欧美一区二区三区| 亚洲免费一区二区| 四虎免费影院ww4164h| 色费女人18女人毛片免费视频| 久久精品国产亚洲一区二区| 免费在线观看视频网站| 菠萝菠萝蜜在线免费视频| 亚洲国产AV无码专区亚洲AV| 日韩欧毛片免费视频| 特级做a爰片毛片免费看| 亚洲精品私拍国产福利在线| 高清国语自产拍免费视频国产| 美女巨胸喷奶水视频www免费| 亚洲喷奶水中文字幕电影| 国产中文字幕免费观看| 无码av免费网站|