第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何理解使用refs 減少dom節(jié)點的消耗

如何理解使用refs 減少dom節(jié)點的消耗

慕村225694 2019-03-20 21:15:57
如何理解使用refs可以減少dom節(jié)點的消耗?看到Vue官網(wǎng)的例子會使用ref,refs.下面例子的理解和說明是對的嗎?<!DOCTYPE html><html><head>    <meta charset="utf-8">    <title>Vue組件</title>    <script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script></head><body>    <div id="example-5">        <p>如何理解使用$refs可以減少操作DOM節(jié)點的消耗?</p>        <input type="text" ref="inputVal" id="inputVal" />        <button @click="updateVal">修改</button>        <p>結(jié)果:{{newVal}}</p>    </div></body><script>    let example5 = new Vue({        el: "#example-5",        data: { newVal: "" },        methods: {            updateVal: function () {                 this.newVal = this.$refs.inputVal.value;                //也可以用:                //let inputVal = document.getElementById("inputVal");                //this.newVal = inputVal.value;             }        }    }) </script></html>ref注冊了對象的實例,而document.getElementById每次獲取的是原對象,所以refs獲取的對象值只是一個實例,只需要寫值時操作DOM節(jié)點。這里是否可以理解成refs節(jié)省的是不用每一次都去獲取document.getElementById原對象?======補(bǔ)充=====一樓的熱心同學(xué)幫忙回答了這個問題,覺得挺認(rèn)可,同時拓展下看了getElement系列和querySelectorAll的區(qū)別,覺得知乎這個解釋還得仔細(xì)的,有興趣可以參考。https://www.zhihu.com/questio...其中有一個demo講述了querySelectorAll和getElementsBy系列的查詢效率對比,雖然querySelectorAll可以減少對dom節(jié)點操作的消耗,但是getElementsBy系列的查詢效率會更高。https://jsperf.com/getelement...有不對的地方麻煩指出,也可以幫忙補(bǔ)充更好的學(xué)習(xí)資料。
查看完整描述

1 回答

?
qq_笑_17

TA貢獻(xiàn)1818條經(jīng)驗 獲得超7個贊

正如你所說的,這樣使用可以避免每次獲取的開銷。

不過 VUE 內(nèi)部是使用 querySelector 系列進(jìn)行 DOM 獲取,而不是 getElement... 系列。
這兩個是有區(qū)別的:
querySelector 系列返回的是 NodeList 實例,一次查詢得到結(jié)果后以后直接使用,相當(dāng)是保留的副本。
getElement... 系列返回的是 HTMLCollection 實例,每次使用該結(jié)果都會進(jìn)行一次相同的查詢,相當(dāng)是響應(yīng)式的。

$refs 只在組件渲染完成后才填充,并且它是非響應(yīng)式的。它僅僅是一個直接操作子組件的應(yīng)急方案——應(yīng)當(dāng)避免在模板或計算屬性中使用 $refs。


查看完整回答
反對 回復(fù) 2019-03-29
  • 1 回答
  • 0 關(guān)注
  • 395 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號