欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue中的數(shù)據(jù)驅(qū)動解釋

 更新時間:2022年12月12日 09:18:31   作者:海綿寶寶_0113  
這篇文章主要為大家介紹了Vue中的數(shù)據(jù)驅(qū)動解釋,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Vue中數(shù)據(jù)驅(qū)動

使用過Vue框架的小伙伴知道在Vue中有這么一個玩意:v-model。 這個玩意就用到了Vue中的數(shù)據(jù)驅(qū)動(數(shù)據(jù)雙向綁定)。

那么,什么是數(shù)據(jù)驅(qū)動呢?

數(shù)據(jù)驅(qū)動解釋

數(shù)據(jù)驅(qū)動是vue.js最大的特點。在vue.js中,所謂的數(shù)據(jù)驅(qū)動就是當數(shù)據(jù)發(fā)生變化的時候,用戶界面發(fā)生相應(yīng)的變化,開發(fā)者不需要手動的去修改dom。

再通俗一點就是,你在這里改變了一下數(shù)據(jù),在頁面其他使用該數(shù)據(jù)的地方也會隨之發(fā)生改變,而我們開發(fā)者只是在這里改變了一下數(shù)據(jù),并沒有直接操作DOM去改變其他地方的數(shù)據(jù)。

那Vue是怎么實現(xiàn)的這一效果呢?

Vue數(shù)據(jù)驅(qū)動

其實這個原理有點像那個中間人,舉個例子吧,你的領(lǐng)導有一天改動一條通知(數(shù)據(jù)發(fā)生了改變):今天不上班,然后被某個人聽見了(監(jiān)聽),這個人就把領(lǐng)導的消息傳遞給下面的程序員,下面的程序員一聽到這個消息,馬上就準備收拾東西回家休息了(頁面的元素隨之改變)。

大概就是下面這張圖:

那現(xiàn)在擺在我們面前的就有兩個問題,這兩個箭頭是如何實現(xiàn)的呢?

首先我們看看數(shù)據(jù)驅(qū)動是如何監(jiān)聽數(shù)據(jù)發(fā)生變化的?

Vue 實例的數(shù)據(jù)對象。Vue 將會遞歸將 data 的屬性轉(zhuǎn)換為 getter/setter,從而讓 data 的屬性能夠響應(yīng)數(shù)據(jù)變化。對象必須是純粹的對象 (含有零個或多個的 key/value 對):瀏覽器 API 創(chuàng)建的原生對象,原型上的屬性會被忽略。大概來說,data 應(yīng)該只能是數(shù)據(jù) - 不推薦觀察擁有狀態(tài)行為的對象。

這是vue文檔里面的話,意思就是vue為data里面的屬性(也就是我們的數(shù)據(jù)),都添加了getter/setter。這樣就可以監(jiān)聽到數(shù)據(jù)的變化了。是不是還有有點蒙?沒關(guān)系,其實就是利用defineProperty方法來實現(xiàn)監(jiān)聽的。

簡單說說defineProperty

可能有小伙伴不太熟悉這個方法,我在這簡單的提一下:

  • 語法:Object.defineProperty(obj,property,descriptor)
  • 參數(shù):obj 綁定屬性的目標對象 property 綁定的屬性名 descriptor 屬性描述(配置項)

下面我列出一些常見的屬性配置項:

  • value:設(shè)置屬性的默認值
  • writable:設(shè)置屬性是否可以被修改
  • enumerable:設(shè)置屬性是否可以被遍歷
  • configurable:設(shè)置屬性是否可以被編輯(包括刪除等等)
  • get:獲取屬性值
  • set:設(shè)置屬性值

其中setget就是我們要用到的屬性:

舉個例子:

 let data = {
     a:1;
 };
 Object.defineProperty(data,a,{
     get:()=>{
         console.log('獲取數(shù)據(jù)啦');
     },
     set:(value)=>{
         console.log('設(shè)置新數(shù)據(jù)啦',value);
     }
 })

通過這個方法就可以實現(xiàn)vue中數(shù)據(jù)驅(qū)動對數(shù)據(jù)的監(jiān)聽,vue如何對視圖進行更新呢?這就用到了vue中的虛擬DOM。我們下集聊聊這個Vue中的虛擬DOM。

以上就是Vue中的數(shù)據(jù)驅(qū)動解釋的詳細內(nèi)容,更多關(guān)于Vue 數(shù)據(jù)驅(qū)動的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue data對象重新賦值無效(未更改)的解決方式

    vue data對象重新賦值無效(未更改)的解決方式

    這篇文章主要介紹了vue data對象重新賦值無效(未更改)的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • VUE表達式{{}}中如何拼接字符

    VUE表達式{{}}中如何拼接字符

    這篇文章主要介紹了VUE表達式{{}}中如何拼接字符問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • vue路由前進后退動畫效果的實現(xiàn)代碼

    vue路由前進后退動畫效果的實現(xiàn)代碼

    這篇文章主要介紹了vue路由前進后退動畫效果,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-12-12
  • 淺析Vue中生命周期函數(shù)的區(qū)別

    淺析Vue中生命周期函數(shù)的區(qū)別

    生命周期分為四個對子,根據(jù)不同的情況使用不同的函數(shù),這篇文章主要為大家介紹了這些函數(shù)的使用與區(qū)別,感興趣的小伙伴可以了解一下
    2023-08-08
  • vue日期時間工具類詳解

    vue日期時間工具類詳解

    這篇文章主要為大家詳細介紹了vue日期時間工具類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • vue?echarts移動端踩坑解決記錄

    vue?echarts移動端踩坑解決記錄

    這篇文章主要為大家介紹了vue?echarts移動端踩坑解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • vue2中基于vue-simple-upload實現(xiàn)文件分片上傳組件功能

    vue2中基于vue-simple-upload實現(xiàn)文件分片上傳組件功能

    這篇文章主要介紹了vue2中基于vue-simple-upload的文件分片上傳組件,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 基于Vue CSR的微前端實現(xiàn)方案實踐

    基于Vue CSR的微前端實現(xiàn)方案實踐

    這篇文章主要介紹了基于Vue CSR的微前端實現(xiàn)方案實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • Vuejs對象常用操作之取對應(yīng)的值、取key和value值、轉(zhuǎn)數(shù)組及合并等

    Vuejs對象常用操作之取對應(yīng)的值、取key和value值、轉(zhuǎn)數(shù)組及合并等

    最近在學Vue和javascript感覺js的好多方法都不太清楚,這里徹底總結(jié)下,這篇文章主要給大家介紹了關(guān)于Vuejs對象常用操作之取對應(yīng)的值、取key和value值、轉(zhuǎn)數(shù)組及合并等的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • webpack+vue.js實現(xiàn)組件化詳解

    webpack+vue.js實現(xiàn)組件化詳解

    vue的開發(fā)體驗還是比較愉悅的。首先文檔非常友好,所以上手會比較快。其次,配合webpack和vue-loader,每個頁面都是一個.vue文件,寫起來很方便。所以很適合做組件化開發(fā),這篇文章我們就來一起看看webpack+vue.js如何實現(xiàn)組件化。
    2016-10-10

最新評論