在官网上,有手表的详细介绍。大家可以去关注下官方文档。以下是我个人对看听者的总结。什么是监听器?watchlistener:本质上是一个功能,监听数据变化并对数据变化进行特定的操作。(数据名可以作为方法名)(注意:所有的监听器都要定义在watch节点下)constvm=newVue({el:'#app',data:{username:''},watch:{//监听用户名值变化//newVal是“变化后的新值”,oldVal是“变化前的旧值”username(newVal.oldVal){console.log(newVal.oldVal)}}})立即选项默认情况下,该组件不会在初始加载后调用watch侦听器。如果您希望立即调用监视监听器,则需要使用immediate选项。watch:{username:{//handler是一种固定的写法,也就是说当username的值发生变化时,//自动调用handler处理函数handler:asyncfunction(newVal){if(newVal==='')returnconst{data:res}=awaitaxios.get('https://www.escook.cn/api/finduser/'+newVal)console.log(res)},//表示当前watch会页面第一次渲染后立即触发监听器//immediate选项默认值为false//immediate用于:控制监听器是否自动触发一次!immediate:true}}deepoptionwatch监听一个对象,如果对象中的属性值发生变化,则无法监听。这时候就需要用到深度选项constvm=newVue({el:'#app',data:{info:{username:'admin'}},watch:{info:{handler(newVal){console.log(newVal.username)},deep:true}}})-监听对象单个属性的变化,方法如下:```constvm=newVue({el:'#app',data:{info:{username:'admin'}},//所有监听器都应该定义在watch节点下watch:{//如果要监听对象子属性的变化,必须包裹一层单引号'info.username':{handler(newVal){console.log(newVal)}}}})```监听器格式1.>方法格式1.监听器的缺点:不能在刚进入页面时自动触发!缺点2.:如果监听器是一个对象,如果属性改变,监听器不会被触发!2.>object格式监听器的好处1.:可以使用immediate选项让监听器自动触发!好处2.:可以使用deep选项,让监听器深度监听对象中各个属性的变化!
