91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue2.x版本中computed和watch怎么使用

發布時間:2022-07-02 09:36:15 來源:億速云 閱讀:130 作者:iii 欄目:開發技術

這篇文章主要介紹了vue2.x版本中computed和watch怎么使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇vue2.x版本中computed和watch怎么使用文章都會有所收獲,下面我們一起來看看吧。

前言

兩者的區別,繼續通過代碼實現的方式具體去了解

html

<li>最開始的value值:{{ name }}</li>
<li>computed計算后的值:{{ 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下所有的狀態都會監聽this.name---->", this.name);
		console.log(
			"watch下所有的狀態都會監聽this.computedName---->",
			this.computedName
		);
		this.watchName = newVal;
	},
},
computed: {
	computedName: function (currentThis) {
		console.log(
			"和計算屬性無關的狀態發生更改時,不會執行,只要依賴的狀態發生更改,緩存才會更新",
			currentThis
		);
		return `依賴于name,:${this.name}`;
	},
},
methods: {
	handleNumber() {
		this.name = "lisi";
	},
},

區別

依賴值: computed依賴于所使用的狀態,類似在data中聲明的name,
而watch中監聽的值不依賴于某個值,只要組件狀態發生更改,監聽的值就實時獲取最新值,
computed的實現使用的是getter和setter獲取值,屬于同步操作。

使用方法:

  • computed最后需要進行return處理返回值,并且可以使用更深層次的getter和setter,具體參考 vue2.x版詳解computed和watch的使用

  • watch除了callback回調函數外,還有兩個屬性值為布爾值的屬性,用于首次綁定immediate,以及對對象的深度監聽deep

  • 兩者相同點就是可以通過方法參數獲取新值,結合其他狀態處理相關的業務

補充

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

官方文檔提示:

注意:在變更 (不是替換) 對象或數組時,舊值將與新值相同,因為它們的引用指向同一個對象/數組。Vue 不會保留變更之前值的副本。

vm.$watch('a.b.c', function (newVal, oldVal) {
  // 做點什么
})
// 函數
vm.$watch(
  function () {
    // 表達式 `this.a + this.b` 每次得出一個不同的結果時
    // 處理函數都會被調用。
    // 這就像監聽一個未被定義的計算屬性
    return this.a + this.b
  },
  function (newVal, oldVal) {
    // 做點什么
  }
)

需要注意的是,如果使用vm.$watch,那么使用unwatch有助于我們取消對某個狀態的監聽,減少不必要的監聽和交互開銷

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

關于“vue2.x版本中computed和watch怎么使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“vue2.x版本中computed和watch怎么使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湘潭县| 安远县| 富阳市| 克山县| 康乐县| 防城港市| 抚宁县| 驻马店市| 沙坪坝区| 兴业县| 当涂县| 阜城县| 砚山县| 舟山市| 洛扎县| 霸州市| 云阳县| 中宁县| 大庆市| 南平市| 石屏县| 永寿县| 乌鲁木齐县| 利辛县| 馆陶县| 虎林市| 柳林县| 黎城县| 阿拉善盟| 清水河县| 博乐市| 阿拉尔市| 铜川市| 安宁市| 太和县| 桐庐县| 遵化市| 康马县| 衡阳市| 南开区| 兴宁市|