vue3 watchEffect,vue.$watch

  vue3 watchEffect,vue.$watch

  本文主要通过OptionsAPI和CompositionAPI来对比手表的用法,让大家快速掌握vue3中手表的新用法。有需要的朋友可以参考一下。希望对大家有帮助。

  

目录

   I、手表新用法1.1、手表使用语法1.2、手表监控多属性值1.3、手表监控参考数据类型2、watchEffect 3、手表与watchEffect的区别与联系3.1、手表特性3.2、手表配置项3.3、watchEffect特性3.4、手表与watchEffect的联系。

  

一、watch 新用法

  选项式API中,watch 使用

  观察:{

  情绪(曲线,概率){

  console.log(cur ,curVal);//最新的值

  console.log(pre ,preVal);//修改以前的值

  }

  }

  

1.1、watch 使用语法

  在Composition API中,使用watch时,首先要引入它。

  使用语法为:

  从“vue”导入{ watch }

  手表(

  姓名,

  (curVal,preVal )={ //业务处理},

  选择

  )

  共有三个参数,分别为:

  名称:需要帧监听的属性。

  (curval,pre eval)={//业务处理}箭头函数,是监控的最新值,也是本次修改前的值。这里,执行逻辑处理。

  选项:配置项,监听器的配置,如是否深度监听。

  当页面第一次进入时,它不会被执行。当值改变时,当前最新值和修改前的值将被打印出来。

  示例1:听一个数据

  从“vue”导入{ ref,watch }

  导出默认值{

  setup(){

  const mood=ref( )

  //帧监听器

  手表(情绪,(曲线,预测)={

  console.log(cur ,curVal);

  console.log(pre ,preVal);

  },{

  //配置项

  })

  返回{

  情绪

  }

  }

  }

  Watch还可以监视多个属性值。此时,传入的数据变成一个数组,配置项保持不变。

  

1.2、watch 监听多个属性值

  示例2:监听多个属性

  watch([mood,target],([curMood,curTarget],[preMood,preTarget])={

  console.log(curMood ,curMood);

  console.log(preMood ,pre mood);

  console.log(curTarget ,curTarget);

  console.log(preTarget ,preTarget);

  },{

  //配置项

  })

  

1.3、watch 监听引用数据类型

  当watch监听引用数据类型时,如果只监听其中一个属性,

  使用语法如下:

  watch(()=obj.name,(curValue,preValue)={

  //帧监听引用数据类型的属性。

  },{

  //配置项

  })

  第一个参数是回调函数,它返回需要监听的对象的属性。后面的参数和上面的一样。

  示例3:监听框架对象的一个属性。

  模板

  差异

  {{obj}}

  输入类型=text v-model=obj.name

  /div

  /模板

  脚本

  从“vue”导入{ ref,reactive,watch }

  导出默认值{

  setup(){

  const obj=reactive({姓名: QQ ,性别:女性 })

  watch(()=obj.name,(cur,pre)={

  console.log(cur ,cur);

  },{ })

  返回{

  目标文件

  }

  }

  }

  /脚本

  如果我们试图去掉属性,直接监视整个对象,我们发现手表似乎是无效的。此时,我们需要引入watchEffect。

  

二、watchEffect

  WatchEffect也是一个帧监听器和一个副作用函数。它会监听被引用数据类型的所有属性,不需要特定于某个属性。一旦运行,它将立即监听,当组件被卸载时,它将停止监听。

  示例4:监听对象

  模板

  差异

  {{obj}}

  输入类型=text v-model=obj.name

  输入类型=text v-model=obj.sex

  /div

  /模板

  脚本

  从“vue”导入{ reactive,watchEffect }

  导出默认值{

  setup(){

  设j=reactive({姓名: QQ ,性别:女 })

  watchEffect(()={

  console.log(name ,obj . name);

  console.log(sex ,obj . sex);

  })

  返回{

  目标文件

  }

  }

  }

  /脚本

  watchEffect参数只有一个回调函数。此时会进入刷新页面,watchEffect会打印结果。

  

三、watch 与 watchEffect 区别和联系

  watchEffect和watcheffect都是监听器,那么它们之间是什么关系呢?

  

3.1、watch特点

  watch功能可以添加配置项,也可以配置为空。当配置项为空时,

  watch的特点为:

  有惰性:运行时,不会立即执行。

  更加具体:您需要添加一个监听属性。

  可以访问属性之前的值:回调函数将返回最新值和修改前的值。

  可配置:您可以添加配置项目。

  

3.2、watch 配置项

  watch 的配置项可以补充watch特点上的不足,可以配置的有:

  Immediate:配置是否立即执行watch属性。当值为true时,一旦运行就会立即执行。当值为false时,它将保持惰性。

  深度:配置手表是否深度监控。当值为true时,它可以监视对象的所有属性。当值为false时,它会保留更多特定的功能,并且必须在特定的属性上指定。

  

3.3、watchEffect 特点

  watchEffect 副作用函数它的特点分别为:

  非惰性:一旦运行,将立即执行。

  更加抽象:使用时不需要指定听谁的,直接在回调函数中使用即可。比看更难理解。

  不可访问之前的值:只能取最新的值,不能取修改前的值。

  

3.4、watch 与 watchEffect 联系

  watch的前两个特性和watchEffect的两个特性正好相反。可以通过配置项使用watchEffect功能修改watch。

  示例5:观察监听对象

  模板

  差异

  {{obj}}

  输入类型=text v-model=obj.name

  /div

  /模板

  脚本

  从“vue”导入{ ref,reactive,watch }

  导出默认值{

  setup(){

  const obj=reactive({姓名: QQ ,性别:女性 })

  手表(()=obj,(cur,pre)={

  console.log(cur ,cur);

  },{

  即时:真的,

  深:真的

  })

  返回{

  目标文件

  }

  }

  }

  /脚本

  这篇关于vue 3中watch和watchEffect的新用法的文章就到这里了。关于vue 3中的watch和watchEffect的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: