vue监听属性 watch的使用总结

青旅半醒 2023-10-03 10:49 82阅读 0赞

目录

1.作用

2.应用场景

3.用法:

4.深度监听和立即执行(监听复杂类型)

5.总结:


1.作用


可以监听data/computed等属性值改变。

常见于监听某变量值的改变,或者对象中属性值的改变

2.应用场景


如监听路由变化

如当页面的数据变动需要做逻辑运算时

如组件创建时,监听某个变量或者某对象的值或属性改变时

如使用此属性判断父子组件传值发生时做逻辑。


#

3.用法:


注意:和data、methods同级

  1. watch: {
  2. "被监听的属性名" (newVal, oldVal){
  3. }
  4. }

小结:想要监听一个属性变化, 可使用监听属性watch


#

4.深度监听和立即执行(监听复杂类型)


用法:

  1. watch: {
  2. "要监听的属性名": {
  3. immediate: true, // 立即执行
  4. deep: true, // 深度监听复杂类型内变化
  5. handler (newVal, oldVal) {
  6. }
  7. }
  8. }

例子:

  1. <template>
  2. <div>
  3. <input type="text" v-model="user.name">
  4. <input type="text" v-model="user.age">
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. data(){
  10. return {
  11. user: {
  12. name: "小白",
  13. age: 18
  14. }
  15. }
  16. },
  17. watch: { // 固定属性(设置监听哪些属性)
  18. user: { // 具体属性名(被监听)
  19. handler(newVal, oldVal){ // 固定触发此函数
  20. console.log(newVal);
  21. },
  22. immediate: true, // 马上监听触发
  23. deep: true // 深度监听(监听name和age值的改变)
  24. }
  25. }
  26. }
  27. </script>

小结: immediate立即监听, deep深度监听, handler固定方法触发


5.总结:

最常见的业务中使用思路:

监控data中某个变量的变化==>发生变化===> 逻辑运算 ===>实现功能

发表评论

表情:
评论列表 (有 0 条评论,82人围观)

还没有评论,来说两句吧...

相关阅读