vue2.0 watch 详解
发布日期:2021-09-05 12:41:21 浏览次数:1 分类:技术文章

本文共 1319 字,大约阅读时间需要 4 分钟。

vue官网解释: 一个对象,键是需要观察的表达式,值是对应回调函数。值也可以是方法名,或者包含选项的对象。Vue 实例将会在实例化时调用 $watch(),遍历 watch 对象的每一个属性。

也就是说watch可以监听对象的变化,规则是键值对方式。

export default {  props: {    fatherAjaxData: {      type: Object    }  },  data() {    return {      a: 1,      b: 2,      c: 3    }  },  watch: {    // 父级异步加载的数据 props 方式给到 当前子级    fatherAjaxData: function (val, oldVal) {      this.$nextTick(() => {        console.log('监听到已异步加载的fatherAjaxData数据 已有值');      });    },    a: function (val, oldVal) {      console.log(`watch a val change --- new val: ${val}, old val: ${oldVal}`);    },    // watch_b_val_change 方法名    b: 'watch_b_val_change',    c: {      handler: function (val, oldVal) {        console.log(`watch c val change --- new val: ${val}, old val: ${oldVal}`);      },      deep: true // 为了发现对象内部值的变化,可以在选项参数中指定 deep: true 。注意监听数组的变动不需要这么做。    }  },  mounted() { // vue 生命周期方法 vue页面全部加载完毕(不包括异步数据)    this.$nextTick(() => {      console.log('vue页面加载完毕!');    });  },  methods: {    watch_b_val_change(val, oldVal) {      console.log(`watch b val change --- new val: ${val}, old val: ${oldVal}`);    }  }};

this.$nextTick :vue生命周期方法 当数据发生变化 dom变化后 执行$nextTick的callback方法

deep: 为了发现对象内部值的变化,可以在选项参数中指定 deep: true 。注意监听数组的变动不需要这么做。

vm.$watch('someObject', callback, {  deep: true})vm.someObject.nestedValue = 123// callback is fired

.

转载地址:https://blog.csdn.net/weixin_34239169/article/details/85950155 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:程序员自学路上的一些感悟
下一篇:rabbitmq更换数据文件和日志文件的存放位置

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年05月05日 15时44分55秒