av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

vue深度監(jiān)聽(監(jiān)聽對(duì)象和數(shù)組的改變)與立即執(zhí)行監(jiān)聽實(shí)例

瀏覽:117日期:2022-11-29 09:37:34

1.vue中監(jiān)聽對(duì)象數(shù)據(jù)屬性值的改變,可以使用深度監(jiān)聽

data () { return { form: { status: ’’, cpufrequency: ’’, systemstacksize: ’’, scalabilityclass: ’’ } } }, watch: { form: { // 深度監(jiān)聽 handler(val, oldVal){ console.log(’currentForm’,val, oldVal) // 但是這兩個(gè)值打印出來卻都是一樣的,因?yàn)樗鼈兊囊弥赶蛲粋€(gè)對(duì)象/數(shù)組 }, deep:true } }

注意:我們應(yīng)盡量避免在監(jiān)聽方法中更改當(dāng)前監(jiān)聽對(duì)象的屬性值,以免再次觸發(fā)監(jiān)聽函數(shù)

2.若只監(jiān)聽某個(gè)或部分屬性值的變化,則可以配合計(jì)算屬性computed來解決

data () { return { form: { status: ’’, cpufrequency: ’’, systemstacksize: ’’, scalabilityclass: ’’ } } }, computed: { status() { return this.form.status } }, watch: { status() { console.log(’currentVal’, this.status) } }

當(dāng)然,上面這種方法會(huì)多出一個(gè)計(jì)算屬性,并不是最好的方法,通過查看官方api,其實(shí)還有一種方法:

data () { return { form: { status: ’’, cpufrequency: ’’, systemstacksize: ’’, scalabilityclass: ’’ } } }, watch: { ’form.status’(val, oldVal) { console.log(’currentVal’, val) } }

3.取消監(jiān)聽

var unwatch = vm.$watch(’a’, cb) // 返回一個(gè)取消監(jiān)聽函數(shù)

unwatch() // 取消觀察函數(shù)

4.立即觸發(fā)監(jiān)聽

我們有時(shí)會(huì)有這個(gè)需求,在頁面初始化時(shí)執(zhí)行某個(gè)監(jiān)聽。因此,我們可能會(huì)在 created 中去調(diào)用需要執(zhí)行的監(jiān)聽代碼,但現(xiàn)在我們可以使用 immediate 來實(shí)現(xiàn)這個(gè)功能。

watch: { ’form.status’() { handler(val, oldVal) { // 執(zhí)行一些操作 }, immediate: true } }

補(bǔ)充知識(shí):vue watch監(jiān)聽數(shù)據(jù),新老值一樣?讓其不一樣吧!

我就廢話不多說了,大家還是直接看代碼吧~

data:{ testData:{ dataInfo:{a: ’我是a’,b: ’我是b’ } } }, watch: { testData: { handler: (val, olVal) => { console.log(’我變化了’, val, olVal) }, deep: true } }

如果testData發(fā)生了變化,就會(huì)打印出val,olVal,但是他們打印出來的結(jié)果都是一樣的,因?yàn)閿?shù)據(jù)同源。雖然可以監(jiān)聽到他的變化,但是要比較數(shù)據(jù)差異就不行了。如果想要得到不同的值可以結(jié)合計(jì)算屬性。

data:{ testData:{ dataInfo:{a: ’我是a’,b: ’我是b’ } } }, watch: { testDataNew: { handler: (val, olVal) => { console.log(’我變化了’, val, olVal) }, deep: true } }, computed: { testDataNew() { return JSON.parse(JSON.stringify(this.testData)) } }

以上這篇vue深度監(jiān)聽(監(jiān)聽對(duì)象和數(shù)組的改變)與立即執(zhí)行監(jiān)聽實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 在线观看小视频 | 一级黄片毛片 | 国产美女免费视频 | 国内精品视频 | 久久黄色| 青草视频在线 | a级片在线观看 | 中文字幕自拍偷拍 | 欧美视频一二三区 | 中文字幕精品视频 | 夜夜嗨av一区二区三区网页 | 亚洲午夜在线观看 | 美日韩在线 | 91日韩在线 | 欧美一级片在线 | 午夜看看 | 日本特黄视频 | 久久久噜噜噜 | 亚洲美女一区 | 国产又粗又大又硬 | 交换多p群乱高h文 | 免费视频一区二区 | 国产精品欧美精品 | 久久人体视频 | 欧美日视频 | 美女无遮挡网站 | 老司机免费福利视频 | 国产美女一区二区三区 | 国产免费久久 | 久久精品久久久久久久 | 三级在线播放 | 九九久久久| 99视频 | 99精品久久 | 伊人成人在线 | 深夜福利网 | 午夜国产| 五月天婷婷基地 | 中文字幕在线观看一区二区三区 | 国产精品免费一区 | 日韩中文字幕 |