亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    怎么用vue.js實(shí)現(xiàn)雙向綁定?

    vue.js采用數(shù)據(jù)劫持結(jié)合“發(fā)布者-訂閱者”模式的方式,通過(guò)Object.defineProperty()來(lái)劫持各個(gè)屬性的setter、getter,在數(shù)據(jù)變動(dòng)時(shí)發(fā)布消息給訂閱者,觸發(fā)相應(yīng)的監(jiān)聽(tīng)回調(diào),從而實(shí)現(xiàn)雙向綁定。

    怎么用vue.js實(shí)現(xiàn)雙向綁定?

    • 適用于所有品牌的電腦。

    vue的雙向綁定原理及實(shí)現(xiàn)

    前言

    使用vue也好有一段時(shí)間了,雖然對(duì)其雙向綁定原理也有了解個(gè)大概,但也沒(méi)好好探究下其原理實(shí)現(xiàn),所以這次特意花了幾晚時(shí)間查閱資料和閱讀相關(guān)源碼,自己也實(shí)現(xiàn)一個(gè)簡(jiǎn)單版vue的雙向綁定版本,先上個(gè)成果圖來(lái)吸引各位:

    代碼:

    怎么用vue.js實(shí)現(xiàn)雙向綁定?

    效果圖:

    怎么用vue.js實(shí)現(xiàn)雙向綁定?

    是不是看起來(lái)跟vue的使用方式差不多?接下來(lái)就來(lái)從原理到實(shí)現(xiàn),從簡(jiǎn)到難一步一步來(lái)實(shí)現(xiàn)這個(gè)SelfVue。由于本文只是為了學(xué)習(xí)和分享,所以只是簡(jiǎn)單實(shí)現(xiàn)下原理,并沒(méi)有考慮太多情況和設(shè)計(jì),如果大家有什么建議,歡迎提出來(lái)。

    本文主要介紹兩大內(nèi)容:

    1. vue數(shù)據(jù)雙向綁定的原理。

    2. 實(shí)現(xiàn)簡(jiǎn)單版vue的過(guò)程,主要實(shí)現(xiàn){{}}、v-model和事件指令的功能。

    相關(guān)代碼地址:https://github.com/canfoo/self-vue

    vue數(shù)據(jù)雙向綁定原理

    vue數(shù)據(jù)雙向綁定是通過(guò)數(shù)據(jù)劫持結(jié)合發(fā)布者-訂閱者模式的方式來(lái)實(shí)現(xiàn)的,那么vue是如果進(jìn)行數(shù)據(jù)劫持的,我們可以先來(lái)看一下通過(guò)控制臺(tái)輸出一個(gè)定義在vue初始化數(shù)據(jù)上的對(duì)象是個(gè)什么東西。

    代碼:

    var vm = new Vue({     data: {         obj: {             a: 1         }     },     created: function () {         console.log(this.obj);     } });

    結(jié)果:

    怎么用vue.js實(shí)現(xiàn)雙向綁定?

    我們可以看到屬性a有兩個(gè)相對(duì)應(yīng)的get和set方法,為什么會(huì)多出這兩個(gè)方法呢?因?yàn)関ue是通過(guò)Object.defineProperty()來(lái)實(shí)現(xiàn)數(shù)據(jù)劫持的。

    Object.defineProperty( )是用來(lái)做什么的?它可以來(lái)控制一個(gè)對(duì)象屬性的一些特有操作,比如讀寫(xiě)權(quán)、是否可以枚舉,這里我們主要先來(lái)研究下它對(duì)應(yīng)的兩個(gè)描述屬性get和set,如果還不熟悉其用法,請(qǐng)點(diǎn)擊這里閱讀

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)