vue生命周期学习(watch跟computed)
1、watch鉤子函數(shù)監(jiān)聽(tīng)數(shù)據(jù)的變化
watch 的一個(gè)特點(diǎn)是,最初綁定的時(shí)候是不會(huì)執(zhí)行的(firstName的值在data定義時(shí)賦予的值),要等到 firstName 改變時(shí)才執(zhí)行監(jiān)聽(tīng)計(jì)算。
<div> <p>FullName: {{fullName}}</p> <p>FirstName: <input type="text" v-model="firstName"></p> </div>new Vue({el: '#root',data: {firstName: 'Dawei',lastName: 'Lou',fullName: '' }, watch: {firstName(newName, oldName) {this.fullName = newName + ' ' + this.lastName;}} })handler方法和immediate屬性
這時(shí)候需要增加immediate屬性,設(shè)置為true,如果不需要就設(shè)置false,那就是初始化不會(huì)監(jiān)聽(tīng)變化,這時(shí)候需要將watch部分的代碼修改如何
watch: {firstName: {handler(newName, oldName) {this.fullName = newName + ' ' + this.lastName;},// 代表在wacth里聲明了firstName這個(gè)方法之后立即先去執(zhí)行handler方法immediate: true} }應(yīng)用場(chǎng)景:
可以只用watch來(lái)監(jiān)聽(tīng)數(shù)據(jù)的變化實(shí)時(shí)更新數(shù)據(jù)的變化
<template><input v-model="value" /> // 搜索框 </template> <script> export default {data(){return {value: '' // 值}},watch:{value(val){ // 實(shí)時(shí)監(jiān)聽(tīng)數(shù)據(jù)變化this.wat_fun(val)}}, methods:{wat_fun(val){ // 這里可以調(diào)用搜索api接口console.log(val)}} } </script2、computed鉤子函數(shù)監(jiān)聽(tīng)數(shù)據(jù)的變化
讀取computed里面的值還是用this.changeVal3、watch和computed各自處理的數(shù)據(jù)關(guān)系場(chǎng)景不同 (來(lái)源于)
知識(shí)點(diǎn)1:watch擅長(zhǎng)處理的場(chǎng)景:一個(gè)數(shù)據(jù)影響多個(gè)數(shù)據(jù)
知識(shí)點(diǎn)2:computed擅長(zhǎng)處理的場(chǎng)景:一個(gè)數(shù)據(jù)受多個(gè)數(shù)據(jù)影響
對(duì)于watch,我們先從一個(gè)場(chǎng)景說(shuō)起
在《海賊王》里面,主角團(tuán)隊(duì)的名稱叫做:“草帽海賊團(tuán)”
所以我們把船員依次稱為:
草帽海賊團(tuán)索隆,草帽海賊團(tuán)娜美,以此類推。。。
我們希望:當(dāng)船團(tuán)名稱發(fā)生變更的時(shí)候,這艘船上所有船員的名字一起變更!!
例如:
有一天,船長(zhǎng)路飛為了加強(qiáng)團(tuán)隊(duì)建設(shè),弘揚(yáng)海賊文化,決定“草帽海賊團(tuán)”改名為“橡膠海賊團(tuán)”(路飛是橡膠惡魔果實(shí)能力者)
我們代碼如下:
總結(jié):
computed 在數(shù)據(jù)未發(fā)生變化時(shí),優(yōu)先讀取緩存。computed 計(jì)算屬性只有在相關(guān)的數(shù)據(jù)發(fā)生變化時(shí)才會(huì)改變要計(jì)算的屬性,當(dāng)相關(guān)數(shù)據(jù)沒(méi)有變化時(shí),它會(huì)讀取緩存。而不必想 motheds方法 和 watch 方法是的每次都去執(zhí)行函數(shù)。
總結(jié)
以上是生活随笔為你收集整理的vue生命周期学习(watch跟computed)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何构建企业TPM管理体系?
- 下一篇: opencv中step[i],step1