<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • Vue實(shí)現(xiàn)雙向數(shù)據(jù)綁定-創(chuàng)新互聯(lián)

            Vue實(shí)現(xiàn)雙向數(shù)據(jù)綁定的方式,具體內(nèi)容如下

            創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)整合營(yíng)銷推廣、網(wǎng)站重做改版、尼河口網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城網(wǎng)站定制開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為尼河口等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

            Vue是如何實(shí)現(xiàn)雙向數(shù)據(jù)綁定的呢?答案是前端數(shù)據(jù)劫持。其通過(guò)Object.defineProperty()方法,這個(gè)方法可以設(shè)置getter和setter函數(shù),在setter函數(shù)中,就可以監(jiān)聽(tīng)到數(shù)據(jù)的變化,從而更新綁定的元素的值。

            實(shí)現(xiàn)對(duì)象屬性變化綁定到UI

            大概的思路是:

            1. 確定綁定的數(shù)據(jù),使用Object.defineProperty()對(duì)其數(shù)據(jù)變化進(jìn)行監(jiān)聽(tīng)(對(duì)應(yīng)defineGetAndSet)
            2. 一旦數(shù)據(jù)發(fā)生改動(dòng),會(huì)觸發(fā)setter函數(shù)。因此在setter函數(shù)內(nèi)要調(diào)用回調(diào)函數(shù)觸發(fā)綁定元素的更新。
            3. 綁定元素的更新就是遍歷所有的綁定元素,通過(guò)綁定屬性的值確定函數(shù)的調(diào)用,并傳入修改后的值。(對(duì)應(yīng)scan)

            實(shí)現(xiàn)UI變化綁定到對(duì)象屬性

            這個(gè)就比較簡(jiǎn)單了,因?yàn)閁I的改變會(huì)觸發(fā)一些事件,比如keyup。通過(guò)監(jiān)聽(tīng)事件來(lái)實(shí)現(xiàn)數(shù)據(jù)的改變。而上面說(shuō)了,數(shù)據(jù)的改變又會(huì)導(dǎo)致綁定其值的元素的UI改變。

            實(shí)現(xiàn)

            var data = {
             value: 'hello world!'
            }
            var bindValue;
            //確定綁定的元素
            var bindelems = [document.getElementById('p'), document.getElementById('input')];
            //修改綁定元素的值的方法
            var command = {
             text: function(str) {
             this.innerHTML = str;
             },
             value: function(str) {
             this.value = str;
             }
            };
            //遍歷綁定元素修改其值
            var scan = function() {
             console.log('in scan');
             for(var i = 0; i < bindelems.length; i++) {
             var elem = bindelems[i];
             console.log('elem',elem);
             for(var j = 0; j < elem.attributes.length; j++) {
             var attr = elem.attributes[j];
             if(attr.nodeName.indexOf('q-')>=0) {
             command[attr.nodeName.slice(2)].call(elem, data[attr.nodeValue]);
             }
             }
             }
            }
            //設(shè)置劫持
            var defineGetAndSet = function(obj, propname) {
             Object.defineProperty(obj, propname, {
             get: function() {
             return bindValue;
             },
             set: function(value){
             bindValue = value;
             scan();
             },
             enumerable: true,
             configurable: true
             })
            } 
            //一開(kāi)始先初始化,使所有綁定的元素值為初始值
            scan();
            //設(shè)置需要被劫持的元素
            defineGetAndSet(data, 'value');
            //監(jiān)聽(tīng)UI變化
            bindelems[1].addEventListener('keyup', function(e) {
             data.value = e.target.value;
            });
            setTimeout(function() {
             data.value = 'change';
            }, 1000);

            另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.jbt999.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

            本文題目:Vue實(shí)現(xiàn)雙向數(shù)據(jù)綁定-創(chuàng)新互聯(lián)
            網(wǎng)址分享:http://www.jbt999.com/article48/ccdihp.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、做網(wǎng)站、App開(kāi)發(fā)營(yíng)銷型網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

            成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 黄色的艹逼视频网站 | 三级片在线观看中文字幕 | 大香蕉色视频 | 亚洲激情婷婷 | 99青草在线免费观看视频 |