`

vue2.0 watch

 
阅读更多

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

 

分享到:
评论

相关推荐

    解决Vue2.0 watch对象属性变化监听不到的问题

    发现子组件使用deep watch都不能观察到对象中属性的变化,今天终于找到为啥出现这种问题和解决办法了。 解决 为啥出现这种问题?受 ES5 的限制,Vue.js 不能检测到对象属性的添加或删除。 请参照...

    Vue2.0用 watch 观察 prop 变化(不触发)

    本文介绍了Vue2.0用 watch 观察 prop 变化(不触发),分享给大家,具体如下: A 组件: export default { props:{ name:{ type:String } }, data () { return { author: "Jinkey" } }, mounted:function...

    vue1.0和vue2.0的watch监听事件写法详解

    今天小编就为大家分享一篇vue1.0和vue2.0的watch监听事件写法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Vue2.0 V1.1版本 增删改查功能,全选单选与取消全选选项,使用localStorage本地存储数据和watch深度监听

    Vue2.0 V1.0的增删改查功 全选单选与取消全选选项, 使用了localStorage本地存储数据和watch深度监听数据选项变化。TodoList完善版。 用于学习的小Demo. TodoList 传值学习,父传子 子传孙 子传父 传值等学习,全选...

    vue2.0 watch里面的 deep和immediate用法说明

    deep,默认值是 false,代表是否深度监听。 immediate:true代表如果在 wacth 里声明了之后,就会立即先去执行里面的...watch: { btnObj: { handler: function(newVal,oldVal) { if(!!this.sign_img && this.che

    webpack2+vue2.0+vue-router2实例

    "watch": "webpack-dev-server --inline --hot" //用来做热启动,通过命令"webpack-dev-server"可以让改的代码立马生效不用一直每次都跑一下命令"webpack" }, "author": "", "license": "ISC", "dependencies":...

    Vue 2.0 侦听器 watch属性代码详解

    主要介绍了Vue 2.0 侦听器 watch属性代码详解,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下

    详解vuex 中的 state 在组件中如何监听

    本篇文章主要介绍了详解vuex 中的 state 在组件中如何监听,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    vue-fullpage.js-Vue.js的官方fullPage.js组件。-Vue.js开发

    Vue-fullpage.js fullpage.js库的官方Vue.js包装器。 在线演示| Codepen fullpage.js扩展名@ imac2。 感谢VasiliyGryaznoy Vue-fullpage.js fullpage.js库的官方Vue.js包装器。 在线演示| Codepen fullpage.js扩展名...

    Vue2.0生命周期的理解

    网上已经有很多关于vue...vue实例创建完后被调用,此时已经完成了数据观测(data observer),属性和方法的运算,watch/event 事件回调的配置。 可调用methods中的方法,访问和修改data中的数据,并触发响应式变化使DOM渲

    Vue 2.0的数据依赖实现原理代码简析

    首先让我们从最简单的一个实例Vue入手: ... watch 选项 / DOM 选项 / 生命周期钩子 选项 / 资源 选项 / 杂项 具体未展开的内容请自行查阅相关文档,接下来让我们来看看传入的选项/数据是如何管理数据之间的相互

    详解vue2.0监听属性的使用心得及搭配计算属性的使用

    我们在工作中常常需要监听某一个属性值的变化,这个时候我们就需要用到了监听属性watch,在这里我总结watch属性的三种场景使用希望对你有所帮助: 1.基础版监听: 场景如下:输入框输入你的年龄,如果年龄在0-15岁...

    green-app:NativeScript-Vue 2.0测试应用程序

    绿色应用 使用NativeScript-Vue构建的本机应用程序先决条件节点> = 12导游在查看以下内容之前,请先遵循:用法npm install # Install dependenciesnpm start # Build for devnpm run build # Build for ...

    详解vue之页面缓存问题(基于2.0)

    在vue2.0中出现了列表页面是每次都重新加载数据,但是详情页面却只在第一次加载的时候调用数据,如果返回到列表再进入详情那么页面是不会重新渲染页面,可能是新手吧,这个问题困扰了我很久,一直没有办法解决…… ...

    sulg-plugin-cli:基于vue3.x版本的chrome插件脚手架

    基于vue3.x版本的chrome插件脚手架安装npmnpm install ...design-vue2.0集成axios集成less/sass集成echart5集成docker相关3.elementPlus集成vue3.x集成element plus集成axios集成less/sass集成echart5集成docker相关

    vuepro入门案例-Todolist(helloword级别)

    vuepro入门案例-Todolist(helloword级别) 项目难点: X.vue实例中template: '<App/>',这样写是什么意思 X.什么是localStorage、sessionStorage; X.watch:{}用法;

    Vue 3.0 新特性全面解析(走在技术前沿)

    走在技术前沿之 Vue3.0 新特性全面解析。 全网抢先看,做首批 Vue 3.0 开发者!!! 课程内容包含: ...https://edu.csdn.net/course/detail/7906 (Vue.js 2.0之全家桶系列视频课程) 讲师介绍

Global site tag (gtag.js) - Google Analytics