淺談vue單一組件下動態(tài)修改數(shù)據(jù)時的全部重渲染
今天在學(xué)習(xí)vue的過程中,發(fā)現(xiàn)一個有趣的現(xiàn)象。
在某一組件下的某一數(shù)據(jù)通過點擊事件被動態(tài)修改的時候,對應(yīng)view中的數(shù)據(jù)同步的進行了修改,沒錯,這不是廢話嗎,vue的一大特色就是數(shù)據(jù)的雙向綁定??捎腥さ氖?,該組件下我寫的另一個用Math.random()的data值對應(yīng)的值和視圖也發(fā)生了變化
這就讓我這個剛?cè)腴T的小白有點奇怪了,我修改一個,怎么變了兩個????腦洞放開一想,會不會數(shù)據(jù)在雙向同步的時候,發(fā)生了什么,比如。是不是只要有一個節(jié)點變了,node都重新進行了加載???
我想這其中的緣由必定和vue數(shù)據(jù)的雙向綁定的原理有關(guān)聯(lián),就搜索了一番,果然發(fā)現(xiàn)了些東西,就是DocumentFragment,之前好像見過,但沒怎么重視。那么它是用來干啥的呢:
DocumentFragment(文檔片段)可以看作節(jié)點容器,它可以包含多個子節(jié)點,當(dāng)我們將它插入到 DOM 中時,只有它的子節(jié)點會插入目標(biāo)節(jié)點,所以把它看作一組節(jié)點的容器。使用 DocumentFragment 處理節(jié)點,速度和性能遠遠優(yōu)于直接操作 DOM。
手動劃重點:Vue 進行編譯時,就是將掛載目標(biāo)的所有子節(jié)點劫持(真的是劫持,通過 append 方法,DOM 中的節(jié)點會被自動刪除)到 DocumentFragment 中,經(jīng)過一番處理后,再將 DocumentFragment 整體返回插入掛載目標(biāo)。
以上這篇淺談vue單一組件下動態(tài)修改數(shù)據(jù)時的全部重渲染就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue中實現(xiàn)路由跳轉(zhuǎn)的三種方式超詳細教程
這篇文章主要介紹了vue中實現(xiàn)路由跳轉(zhuǎn)的三種方式超詳細教程,其中聲明式router-link實現(xiàn)跳轉(zhuǎn)最簡單的方法,可用組件router-link來替代a標(biāo)簽,每種方式給大家講解的非常詳細需要的朋友可以參考下2022-11-11vue-router中query和params的區(qū)別解析
vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁面應(yīng)用,這篇文章主要介紹了vue-router中query和params的區(qū)別 ,需要的朋友可以參考下2022-10-10