亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣理解Vue的數據驅動

發布時間:2021-10-14 16:39:21 來源:億速云 閱讀:134 作者:柒染 欄目:編程語言

這期內容當中小編將會給大家帶來有關怎樣理解Vue的數據驅動,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

  vue是雙向數據綁定的框架,數據驅動是他的靈魂,他的實現原理眾所周知是Object.defineProperty方法實現的get、set重寫,但是這樣說太牽強外門了。

使用vue

  newVue進行創建vue對象,el屬性是掛載的dom選擇器,這里選擇id為app的dom,data對象保存這所有數據響應的屬性,當其中的某一屬性值改變,就觸發view渲染,從而實現了“數據->視圖”的動態響應;

  示例中msg初始值為hello,因此頁面渲染時為hello,一秒之后,msg變為了hi,觸發了view渲染,我們看到hello變為了li。

分析Object.defineProperty

  我們說vue是怎么實現雙向數據綁定的?是Object.defineProperty實現了,那么我們就直接聚焦Object.defineProperty

  vue在給每一個data的屬性執行defineReactive函數,來達到數據綁定的目的。從代碼中可以看到幾點:

  每一個數據綁定,都會new一個Dep(暫且叫他派發器),派發器的功能是什么?依賴收集以事件分發;

  在屬性get中,除了獲取當前屬性的值,還做了dep.depend()操作;

  dep.depend的目的是什么?看Dep部分代碼,很簡單,其實就是依賴收集,將Dep.target需要收集的依賴進行添加到自己的派發器里

  在屬性set時,就是給屬性改變值時,除了改變值意外,還執行了dep.notify()操作;

  dep.notify的目的又是什么?看代碼,依舊很簡單,將自己派發器的所有依賴觸發update函數;

  這一部分很容易了解,在data的屬性get時,觸發了派發器的依賴收集(dep.depend),在data的屬性set時,觸發了派發器的事件通知(dep.notify);

  結合已知知識,Vue的數據綁定是上面這個函數帶來的副作用,因此可以得出結論:

  當我們改變某個屬性值時,派發器Dep通知了view層去更新

  Dep.target是派發器Dep收集的依賴,并在屬性值改變時觸發了update函數,view層的更新與Dep.target有必然的聯系。換句話說:數據->視圖的數據驅動就等于Dep.target.update()。

上述就是小編為大家分享的怎樣理解Vue的數據驅動了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

斗六市| 怀来县| 河间市| 陵川县| 元谋县| 黄平县| 曲水县| 浏阳市| 呼伦贝尔市| 若羌县| 胶南市| 凌源市| 堆龙德庆县| 巫山县| 呼伦贝尔市| 左贡县| 二连浩特市| 田东县| 乐亭县| 济南市| 康定县| 盐津县| 星座| 沧州市| 吉水县| 益阳市| 甘洛县| 山阳县| 波密县| 沈丘县| 茂名市| 商水县| 博罗县| 贵溪市| 永春县| 逊克县| 蒲城县| 阳信县| 昌黎县| 永寿县| 江都市|