最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue2.x版本中computed和watch的使用及關(guān)聯(lián)和區(qū)別

 更新時(shí)間:2022年07月01日 17:04:40   作者:程序員布?xì)W  
這篇文章主要介紹了vue2.x版本中computed和watch的使用及關(guān)聯(lián)和區(qū)別,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,需要的小伙伴可以參考一下

前言

前面篇介紹了computed和watch的基本使用vue2.x版詳解computed和watch的使用

兩者的區(qū)別,繼續(xù)通過代碼實(shí)現(xiàn)的方式具體去了解

html

<li>最開始的value值:{{ name }}</li>
<li>computed計(jì)算后的值:{{ computedName }}</li>
<li>
	watch修改后的值:{{ watchName }}
	<input type="text" v-model="watchName" />
</li>
<li><button @click="handleNumber">修改名字</button></li>

JS

data() {
	return {
		name: "zhangsan",
		watchName: "張三",
	};
},
watch: {
	watchName(newVal, oldVal) {
		console.log("舊的值---->", newVal);
		console.log("新的值---->", oldVal);
		console.log("watch下所有的狀態(tài)都會(huì)監(jiān)聽this.name---->", this.name);
		console.log(
			"watch下所有的狀態(tài)都會(huì)監(jiān)聽this.computedName---->",
			this.computedName
		);
		this.watchName = newVal;
	},
},
computed: {
	computedName: function (currentThis) {
		console.log(
			"和計(jì)算屬性無關(guān)的狀態(tài)發(fā)生更改時(shí),不會(huì)執(zhí)行,只要依賴的狀態(tài)發(fā)生更改,緩存才會(huì)更新",
			currentThis
		);
		return `依賴于name,:${this.name}`;
	},
},
methods: {
	handleNumber() {
		this.name = "lisi";
	},
},

區(qū)別

依賴值: computed依賴于所使用的狀態(tài),類似在data中聲明的name,
而watch中監(jiān)聽的值不依賴于某個(gè)值,只要組件狀態(tài)發(fā)生更改,監(jiān)聽的值就實(shí)時(shí)獲取最新值,
computed的實(shí)現(xiàn)使用的是getter和setter獲取值,屬于同步操作。

使用方法:

  • computed最后需要進(jìn)行return處理返回值,并且可以使用更深層次的getter和setter,具體參考 vue2.x版詳解computed和watch的使用
  • watch除了callback回調(diào)函數(shù)外,還有兩個(gè)屬性值為布爾值的屬性,用于首次綁定immediate,以及對(duì)對(duì)象的深度監(jiān)聽deep
  • 兩者相同點(diǎn)就是可以通過方法參數(shù)獲取新值,結(jié)合其他狀態(tài)處理相關(guān)的業(yè)務(wù)

補(bǔ)充

在官方文檔中,除了在組件中使用的watch外,官方文檔中,還有對(duì)于示例中watch的介紹

具體用法可以在官網(wǎng)中:

 https://cn.vuejs.org/v2/api/#vm-watch

$watch基礎(chǔ)使用–來自官方文檔例子

官方文檔提示:

注意:在變更 (不是替換) 對(duì)象或數(shù)組時(shí),舊值將與新值相同,因?yàn)樗鼈兊囊弥赶蛲粋€(gè)對(duì)象/數(shù)組。Vue 不會(huì)保留變更之前值的副本。

vm.$watch('a.b.c', function (newVal, oldVal) {
  // 做點(diǎn)什么
})
// 函數(shù)
vm.$watch(
  function () {
    // 表達(dá)式 `this.a + this.b` 每次得出一個(gè)不同的結(jié)果時(shí)
    // 處理函數(shù)都會(huì)被調(diào)用。
    // 這就像監(jiān)聽一個(gè)未被定義的計(jì)算屬性
    return this.a + this.b
  },
  function (newVal, oldVal) {
    // 做點(diǎn)什么
  }
)

需要注意的是,如果使用vm.$watch,那么使用unwatch有助于我們?nèi)∠麑?duì)某個(gè)狀態(tài)的監(jiān)聽,減少不必要的監(jiān)聽和交互開銷

var unwatch = vm.$watch('a', cb)
// 之后取消觀察
unwatch()

結(jié)語

花了兩個(gè)篇幅去介紹watch和computed的使用方法,以及這兩個(gè)鉤子函數(shù)的區(qū)別,在實(shí)際的企業(yè)項(xiàng)目開發(fā)中,使用的場(chǎng)景和次數(shù)較多,所以盡量寫的稍微詳細(xì)一些,同時(shí)也將筆記的代碼放在了開源倉庫,希望對(duì)大家在開發(fā)vue2.x的項(xiàng)目中有所幫助

到此這篇關(guān)于vue2.x版本中computed和watch的使用及關(guān)聯(lián)和區(qū)別的文章就介紹到這了,更多相關(guān)vue2.x computed與watch 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3?路由頁面切換動(dòng)畫?animate.css效果

    Vue3?路由頁面切換動(dòng)畫?animate.css效果

    這篇文章主要介紹了Vue3路由頁面切換動(dòng)畫animate.css效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • vue組件watch屬性實(shí)例講解

    vue組件watch屬性實(shí)例講解

    這篇文章主要為大家詳細(xì)介紹了vue組件watch屬性實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • vue 使用自定義指令實(shí)現(xiàn)表單校驗(yàn)的方法

    vue 使用自定義指令實(shí)現(xiàn)表單校驗(yàn)的方法

    今天小編就為大家分享一篇vue 使用自定義指令實(shí)現(xiàn)表單校驗(yàn)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • vue-electron中修改表格內(nèi)容并修改樣式

    vue-electron中修改表格內(nèi)容并修改樣式

    本文主要介紹了vue-electron中修改表格內(nèi)容并修改樣式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 基于Vue開發(fā)一個(gè)很火的卡片動(dòng)畫效果

    基于Vue開發(fā)一個(gè)很火的卡片動(dòng)畫效果

    這篇文章主要為大家詳細(xì)介紹了如何基于Vue開發(fā)一個(gè)很火的卡片動(dòng)畫效果,大致包含兩個(gè)效果,光的跟隨效果還有卡片傾斜像?3D?的效果,感興趣的可以了解一下
    2024-02-02
  • Vant的安裝和配合引入Vue.js項(xiàng)目里的方法步驟

    Vant的安裝和配合引入Vue.js項(xiàng)目里的方法步驟

    這篇文章主要介紹了Vant的安裝和配合引入Vue.js項(xiàng)目里的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • 關(guān)于vue2響應(yīng)式缺陷的問題

    關(guān)于vue2響應(yīng)式缺陷的問題

    這篇文章主要介紹了關(guān)于vue2響應(yīng)式缺陷的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue項(xiàng)目引入ts步驟(小結(jié))

    vue項(xiàng)目引入ts步驟(小結(jié))

    這篇文章主要介紹了vue項(xiàng)目引入ts步驟(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • vue3中router路由以及vuex的store使用解析

    vue3中router路由以及vuex的store使用解析

    這篇文章主要介紹了vue3中router路由以及vuex的store使用解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 解決vue打包后刷新頁面報(bào)錯(cuò):Unexpected token <

    解決vue打包后刷新頁面報(bào)錯(cuò):Unexpected token <

    這篇文章主要介紹了解決vue打包后刷新頁面報(bào)錯(cuò):Unexpected token <相關(guān)知識(shí)點(diǎn),需要的朋友們參考下。
    2019-08-08

最新評(píng)論

岚皋县| 阜城县| 沧州市| 盐津县| 奇台县| 磐石市| 班戈县| 锡林浩特市| 林州市| 南溪县| 澳门| 江达县| 股票| 合肥市| 西平县| 陆丰市| 尼木县| 潞西市| 建水县| 安仁县| 隆昌县| 万山特区| 浦县| 尼木县| 霍山县| 辽宁省| 松原市| 寻甸| 康马县| 泸定县| 汕尾市| 河间市| 上犹县| 三河市| 永登县| 花垣县| 抚州市| 大安市| 商河县| 北川| 安阳县|