亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue虛擬DOM詳細(xì)介紹

 更新時(shí)間:2022年08月04日 15:30:16   作者:飯啊飯°  
虛擬DOM的概念是通過狀態(tài)生成一個(gè)虛擬節(jié)點(diǎn)樹,然后使用虛擬節(jié)點(diǎn)樹進(jìn)行渲染。在渲染之前,會(huì)使用新生成的虛擬節(jié)點(diǎn)和上一次生成的虛擬節(jié)點(diǎn)進(jìn)行對(duì)比,只渲染不同的部分

一、什么是虛擬DOM

  • 虛擬DOM是對(duì)真是DOM的抽象,以JavaScript對(duì)象(VNode節(jié)點(diǎn))作為基礎(chǔ)的樹,用對(duì)象的屬性來描述節(jié)點(diǎn),最終可以通過一系列操作使這棵樹映射到真實(shí)環(huán)境上。
  • Javascript對(duì)象中,虛擬DOM表現(xiàn)為一個(gè)Object對(duì)象,并且最少包含標(biāo)簽名(tag)、屬性(attrs)和子元素對(duì)象(children)三個(gè)屬性。
  • 創(chuàng)建虛擬DOM就是為了更好將虛擬的節(jié)點(diǎn)渲染到頁面視圖中,所以虛擬DOM對(duì)象的節(jié)點(diǎn)與真實(shí)DOM的屬性一一照應(yīng)。
  • 真實(shí)DOM
<div id="app">
    <p class="p">節(jié)點(diǎn)內(nèi)容</p>
    <h3>{{ foo }}</h3>
</div>
  • 實(shí)例化vue
const app = new Vue({
    el:"#app",
    data:{
        foo:"foo"
    }
})
  • 觀察render的render,我們能得到虛擬DOM
(function anonymous(
) {
	with(this){return _c('div',{attrs:{"id":"app"}},[_c('p',{staticClass:"p"},
					  [_v("節(jié)點(diǎn)內(nèi)容")]),_v(" "),_c('h3',[_v(_s(foo))])])}})
  • 通過VNode,vue可以對(duì)這棵抽象樹進(jìn)行創(chuàng)建節(jié)點(diǎn)、刪除節(jié)點(diǎn)以及修改節(jié)點(diǎn)的操作,經(jīng)過diff算法得出一些需要修改的最小單位,再更新視圖,減少了dom操作,提高了性能。

二、為什么需要虛擬DOM

  • DOM其實(shí)是很慢的,哪怕一個(gè)最簡(jiǎn)單的div也包含著很多的屬性。
  • 因此操作DOM的代價(jià)仍舊是昂貴的,頻繁操作還是會(huì)出現(xiàn)頁面卡頓,影響用戶的體驗(yàn)。
  • 用傳統(tǒng)的原生api或jQuery操作DOM時(shí),瀏覽器會(huì)從構(gòu)建DOM樹開始從頭到尾執(zhí)行一遍流程。
  • 如:當(dāng)要更新10個(gè)DOM節(jié)點(diǎn)時(shí),瀏覽器收到第一個(gè)更新DOM請(qǐng)求后,并不知道后續(xù)還有9次更新操作,會(huì)馬上執(zhí)行流程,最終執(zhí)行10次流程。通過VNode,同樣更新10個(gè)DOM節(jié)點(diǎn),虛擬DOM不會(huì)立即操作DOM,而是將這10次更新的diff內(nèi)容保存到本地的一個(gè)js對(duì)象中,最終將這個(gè)js對(duì)象一次性attach到DOM樹上,避免大量的無謂計(jì)算。
  • 虛擬DOM最大的優(yōu)勢(shì)在于抽象了原本的渲染過程,實(shí)現(xiàn)了跨平臺(tái)的能力,不僅僅局限于瀏覽器的DOM,還可以是其他組件。

三、虛擬DOM介紹

回答:虛擬DOM是對(duì)真實(shí)DOM的一種抽象,會(huì)根據(jù)DOM標(biāo)簽的名字、屬性、孩子對(duì)真實(shí)DOM進(jìn)行映射。使用虛擬DOM的原因是,真實(shí)DOM其實(shí)是很慢的,一個(gè)簡(jiǎn)單的標(biāo)簽也包含了許多屬性。同時(shí)真實(shí)DOM進(jìn)行更新時(shí)的過程很笨拙,虛擬DOM使用diff算法,可以很輕便的進(jìn)行DOM的操作。

到此這篇關(guān)于Vue虛擬DOM詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Vue虛擬DOM內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue-cli腳手架build目錄下utils.js工具配置文件詳解

    vue-cli腳手架build目錄下utils.js工具配置文件詳解

    這篇文章主要介紹了vue-cli腳手架build目錄下utils.js工具配置文件詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • vue使用vue-json-viewer展示JSON數(shù)據(jù)的詳細(xì)步驟

    vue使用vue-json-viewer展示JSON數(shù)據(jù)的詳細(xì)步驟

    最近在開發(fā)一個(gè)公司的投放管理系統(tǒng)的操作日志模塊,要查看某條操作日志的請(qǐng)求參數(shù),要將請(qǐng)求的參數(shù)以JSON格式的形式展示出來,下面這篇文章主要給大家介紹了vue使用vue-json-viewer展示JSON數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • vue實(shí)現(xiàn)鼠標(biāo)懸浮框效果

    vue實(shí)現(xiàn)鼠標(biāo)懸浮框效果

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)鼠標(biāo)懸浮框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue 3.0的attribute強(qiáng)制行為理解學(xué)習(xí)

    Vue 3.0的attribute強(qiáng)制行為理解學(xué)習(xí)

    這篇文章主要為大家介紹了Vue 3.0的attribute強(qiáng)制行為理解學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 使用provide/inject實(shí)現(xiàn)跨組件通信的方法

    使用provide/inject實(shí)現(xiàn)跨組件通信的方法

    在 Vue 應(yīng)用中,組件間通信是構(gòu)建復(fù)雜應(yīng)用時(shí)的一個(gè)常見需求,Vue3.x 提供了provide和inject API,讓跨組件通信變得更加簡(jiǎn)潔和高效,本文將深入探討如何使用provide和inject在Vue3.x中實(shí)現(xiàn)跨組件通信,并通過示例代碼一步步進(jìn)行說明,需要的朋友可以參考下
    2024-03-03
  • Vue.js?中的父子組件通信方式實(shí)例教程

    Vue.js?中的父子組件通信方式實(shí)例教程

    在 Vue.js 中,父子組件通信是非常重要的,在本文中,我們討論了 Vue.js 中父子組件通信的幾種方式,包括使用 props 傳遞數(shù)據(jù)、使用 Sync 修飾符實(shí)現(xiàn)雙向綁定、使用自定義事件傳遞數(shù)據(jù)、使用 $refs 訪問子組件實(shí)例以及使用 $children 和 $parent 訪問父子組件實(shí)例
    2023-09-09
  • 詳解Vue的mixin策略

    詳解Vue的mixin策略

    這篇文章主要介紹了Vue的mixin策略的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)vue框架,感興趣的朋友可以了解下
    2020-11-11
  • Vue中如何實(shí)現(xiàn)在線預(yù)覽word文件、excel文件

    Vue中如何實(shí)現(xiàn)在線預(yù)覽word文件、excel文件

    這篇文章主要介紹了Vue中如何實(shí)現(xiàn)在線預(yù)覽word文件、excel文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue入門之?dāng)?shù)量加減運(yùn)算操作示例

    Vue入門之?dāng)?shù)量加減運(yùn)算操作示例

    這篇文章主要介紹了Vue入門之?dāng)?shù)量加減運(yùn)算操作,結(jié)合實(shí)例形式分析了vue.js基本數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • Vue中Mixin&extends的詳細(xì)使用教程

    Vue中Mixin&extends的詳細(xì)使用教程

    vue提供了mixin、extends配置項(xiàng),最近使用中發(fā)現(xiàn)很好用,下面這篇文章主要給大家介紹了關(guān)于Vue中Mixin&extends的詳細(xì)使用方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02

最新評(píng)論