假设有如下代码:
···
new Vue({ el: '#root', data: { firstName: 'Dawei', lastName: 'Lou', fullName: '' }, watch: { firstName(newName, oldName) { this.fullName = newName + ' ' + this.lastName; } } })FullName: { {fullName}}
FirstName:
···
复制代码
上面的代码的效果是,当我们输入firstName后,wacth监听每次修改变化的新值,然后计算输出fullName。
handler方法和immediate属性
这里 watch 的一个特点是,最初绑定的时候是不会执行的,要等到 firstName 改变时才执行监听计算。那我们想要一开始就让他最初绑定的时候就执行改怎么办呢?我们需要修改一下我们的 watch 写法,修改过后的 watch 代码如下:
···
watch: { firstName: { handler(newName, oldName) { this.fullName =
newName + ’ ’ + this.lastName; }, //
代表在wacth里声明了firstName这个方法之后立即先去执行handler方法 immediate: true } }
···
复制代码
注意到handler了吗,我们给 firstName 绑定了一个handl