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