vue篇:watch

vue watch

1.说明

在vue中watch里面,可以配置监听具体某个值的变化,可传参数:
{ [key: string]: string | Function | Object | Array }
在vue官网中对其描述:
一个对象,键是需要观察的表达式,值是对应回调函数。值也可以是方法名,或者包含选项的对象。Vue 实例将会在实例化时调用 $watch(),遍历 watch 对象的每一个属性

2.使用

简单的使用

<template>
	<view>
		<input type="text" v-model="name"/>
	</view>
</template>

<script>
export default {
		data() {
			return {
				name: "小宝",
			}
		},
		watch:{
			name(newName,oldName){
				console.log("newName=>"+newName);
				console.log("oldName=>"+oldName);
			}
		}
};
</script>

上面例子使用 v-model 进行双向绑定
input元素改变值时,就会触发 watch 里面的 name 方法,而这 name 方法就是自己在data方法区定义的数据。当然这是比较常用的使用方式,在官网还有其他使用方式:

{
    // 方法名
    name: 'someMethod',
    // 该回调会在任何被侦听的对象的 property 改变时被调用,不论其被嵌套多深
    name: {
      handler: function (val, oldVal) { /* ... */ },
      deep: true
    },
    // 该回调将会在侦听开始之后被立即调用
    name: {
      handler: 'someMethod',
      immediate: true
    },
    name: [
      'handle1',
      function handle2 (val, oldVal) { /* ... */ },
      {
        handler: function handle3 (val, oldVal) { /* ... */ },
        /* ... */
      }
    ]
}