众所周知监听select元素选项的变化可以使用@change事件来监听,主要是使用在select元素选项发生变化时,做其他元素的变化或者属性的赋值。但是Vue中还可以使用watch属性监听到属性值的变化,那么可不可以使用watch属性监听select元素中属性值的变化呢?答案是肯定的。
从Vue官方文档对watch属性的介绍可以了解到,watch属性是一个对象,可以监听某个数据的变化,并且在数据发生变化时执行相应的回调函数。watch属性的作用是监控数据变化并作出相应的响应。它可以用于监听数据变化并执行相应的异步操作,也可以用于计算属性依赖的数据发生变化时重新计算属性值。watch属性还可以用于监听路由参数的变化,并在参数变化时重新获取数据并更新视图。
但是这里我认为不应该把watch属性应用到像select这种用户操作元素上,更好的理解就是select元素选项发生了变化,通过@change时间去做相应的操作,而不是select元素的对应属性的状态值发生了变化去做回调。同样,像radio,input,textarea等之类的用户操作元素,还是依赖本身的@change事件机制去做相应的操作比较好。watch的监听也会对这些元素的属性值变化造成维护上的混乱。