国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語(yǔ)言 - JavaScript - vue.js - vue中data改變后讓視圖同步更新的方法

vue中data改變后讓視圖同步更新的方法

2022-02-21 16:54TGuoW vue.js

這篇文章主要給大家介紹了關(guān)于vue中data改變后讓視圖同步更新的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

不久前天看到一個(gè)比較有趣的問(wèn)題,vue中data改變后,如何讓視圖同步更新,搜索了一下,并沒(méi)有發(fā)現(xiàn)解決問(wèn)題的方法,只能從源碼去找解決方法了。

原因

我們都知道,在vue中改變數(shù)據(jù)后,視圖并不是同步更新的。

在vue實(shí)例初始化后,會(huì)將data設(shè)置為響應(yīng)式對(duì)象,當(dāng)我們執(zhí)行this.xxx = 1時(shí),會(huì)觸發(fā)這個(gè)響應(yīng)式對(duì)象的setter。在setter中,會(huì)觸發(fā)更新,通知所有訂閱了xxx的訂閱者。但是這個(gè)觸發(fā)更新并不是同步的,它會(huì)將所有的watcher都添加到一個(gè)隊(duì)列,并在nextTick之后去更新視圖。

這就是vue不能同步更新視圖的原因。

解決方法

知道了原因,總能找到解決方法。

既然是在nextTick的時(shí)候去更新視圖,這個(gè)時(shí)候,必然會(huì)去執(zhí)行一個(gè)更新視圖的方法,那么我們手動(dòng)在數(shù)據(jù)改變的時(shí)候去執(zhí)行這個(gè)方法,就達(dá)到了同步更新視圖的目的。

在了解源碼后,我們可以發(fā)現(xiàn)執(zhí)行的是watcher.run()這個(gè)方法,那么問(wèn)題來(lái)了,怎么去獲取這個(gè)方法?

想快速了解這一塊建議閱讀 Vue.js技術(shù)揭秘

我們?cè)诳刂婆_(tái)打印一下this

vue中data改變后讓視圖同步更新的方法

可以在_watcher這個(gè)對(duì)象的原型上找到run這個(gè)方法,因此問(wèn)題就解決了。

?
1
2
this.xxx = 1;
this._watcher.run()

執(zhí)行以上代碼,在更新完數(shù)據(jù)后,手動(dòng)更新視圖,就可以做到同步的效果。

更好的解決方法

如果每次想要視圖同步更新都要加一句 this._watcher.run() ,那豈不是太麻煩了,因此,我寫了一個(gè)插件,支持this.xxx = 1 之后就同步更新視圖。

這個(gè)插件原理很簡(jiǎn)單,就是在組件的options里邊加了一個(gè)選項(xiàng)syncData,跟data是類似的,然后放入data里面,created鉤子調(diào)用的時(shí)候重新劫持這部分?jǐn)?shù)據(jù),syncData里邊數(shù)據(jù)改變的時(shí)候,自動(dòng)觸發(fā)_watch.run(),從而同步更新視圖。

插件地址:GitHub地址

后記

講道理我覺(jué)得這個(gè)插件并沒(méi)有什么卵用,理論上這個(gè)插件能解決的問(wèn)題$nextTick都可以解決。

到此這篇關(guān)于vue中data改變后讓視圖同步更新的方法的文章就介紹到這了,更多相關(guān)vue視圖同步更新內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://juejin.cn/post/6844904041911156750

延伸 · 閱讀

精彩推薦
  • vue.js梳理一下vue中的生命周期

    梳理一下vue中的生命周期

    看過(guò)很多人講vue的生命周期,但總是被繞的云里霧里,尤其是自學(xué)的同學(xué),可能js的基礎(chǔ)也不是太牢固,聽起來(lái)更是吃力,那我就已個(gè)人之淺見,以大白話...

    CRMEB技術(shù)團(tuán)隊(duì)7992021-12-22
  • vue.jsVue2.x-使用防抖以及節(jié)流的示例

    Vue2.x-使用防抖以及節(jié)流的示例

    這篇文章主要介紹了Vue2.x-使用防抖以及節(jié)流的示例,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下...

    Kyara6372022-01-25
  • vue.jsVue中引入svg圖標(biāo)的兩種方式

    Vue中引入svg圖標(biāo)的兩種方式

    這篇文章主要給大家介紹了關(guān)于Vue中引入svg圖標(biāo)的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的...

    十里不故夢(mèng)10222021-12-31
  • vue.js詳解vue 表單綁定與組件

    詳解vue 表單綁定與組件

    這篇文章主要介紹了vue 表單綁定與組件的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下...

    Latteitcjz6432022-02-12
  • vue.js用vite搭建vue3應(yīng)用的實(shí)現(xiàn)方法

    用vite搭建vue3應(yīng)用的實(shí)現(xiàn)方法

    這篇文章主要介紹了用vite搭建vue3應(yīng)用的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下...

    Asiter7912022-01-22
  • vue.jsVue2.x 項(xiàng)目性能優(yōu)化之代碼優(yōu)化的實(shí)現(xiàn)

    Vue2.x 項(xiàng)目性能優(yōu)化之代碼優(yōu)化的實(shí)現(xiàn)

    這篇文章主要介紹了Vue2.x 項(xiàng)目性能優(yōu)化之代碼優(yōu)化的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋...

    優(yōu)小U9632022-02-21
  • vue.jsVue項(xiàng)目中實(shí)現(xiàn)帶參跳轉(zhuǎn)功能

    Vue項(xiàng)目中實(shí)現(xiàn)帶參跳轉(zhuǎn)功能

    最近做了一個(gè)手機(jī)端系統(tǒng),其中遇到了父頁(yè)面需要攜帶參數(shù)跳轉(zhuǎn)至子頁(yè)面的問(wèn)題,現(xiàn)已解決,下面分享一下實(shí)現(xiàn)過(guò)程,感興趣的朋友一起看看吧...

    YiluRen丶4302022-03-03
  • vue.jsVue多選列表組件深入詳解

    Vue多選列表組件深入詳解

    這篇文章主要介紹了Vue多選列表組件深入詳解,這個(gè)是vue的基本組件,有需要的同學(xué)可以研究下...

    yukiwu6752022-01-25
主站蜘蛛池模板: 桃乃木香奈在线 | 日韩手机在线观看 | 亚洲精品电影网在线观看 | 99国产在线| 在线一区 | 特黄特黄aaaa级毛片免费看 | 狠狠躁夜夜躁人人爽天天天天97 | 国偷自产av一区二区三区 | 蜜桃一区 | 亚洲精品久久久一区二区三区 | av免费网站| 99国产精品久久久 | 狠狠搞狠狠干 | www九九热 | 亚洲视频在线播放 | 国产精品久久久久久久久久新婚 | 婷婷丁香激情网 | 亚洲欧美在线免费 | 91在线高清| 亚洲一区二区三区中文字幕 | 亚洲精品久久 | 亚洲精品99 | 欧美视频精品 | 精品久久久久久亚洲综合网 | 黄色在线免费观看 | 成人黄色在线 | 免费视频一区 | 日比毛片| 欧美综合一区 | 国产黄a三级三级看三级 | 天天躁日日躁aaaaxxxx | 欧美怡红院视频一区二区三区 | 黄色一级片看看 | 欧美激情精品久久久久 | 毛片xxx | 天堂v视频 | 爱干视频 | 亚洲黄色在线观看 | 久久精品国产亚卅av嘿嘿 | 一区二区三区久久 | 亚洲www视频|