watch监听数据发生变化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了watch监听数据发生变化相关的知识,希望对你有一定的参考价值。

参考技术A Vue提供了一个watch方法可以让使用者去监听某些data内的数据变动,触发相应的方法,比如

queryData:

    name: '',

    creator: '',

    selectedStatus: '',

    time: [],

,

现在我需要监听这个queryData,我可以这样做:

watch:

    queryData:

        handler: function()

            //do something

        ,

        deep: true

   



里面的deep设为了true,这样的话,如果修改了这个queryData中的任何一个属性,都会执行handler这个方法。不过其实这样开销是蛮大的,尤其是对象里面结构嵌套过深的时候。而且有时候我们就想关心这个对象中的某个属性,比如name,这个时候可以这样

watch:

    'queryData.name':

        handler: function()

            //do something

        ,

   



或者还可以这样巧用计算属性

computed:

    getName: function()

    return this.queryData.name

   



watch:

    getName:

        handler: function()

            //do something

        ,

   

$scope.$watch()——监听数据变化

$scope.$watch(watchFn, watchAction, [deepWatch]):监听数据变化,三个参数

  ——watchFn:监听的对象,一个带有Angular 表达式或者函数的字符串

  ——watchAction:是一个函数或者表达式,当watchFn 发生变化时会被调用。如果是函数的形式,它将会接收到watchFn 的新旧两个值,以及作用域对象的引用。其函数签名为function(newValue, oldValue, scope)

  ——deepWatch:是否深度监听,可选。如果设置为true,这个可选的布尔型参数将会命令Angular去检查被监听对象的每个属性是否发生了变化

以上是关于watch监听数据发生变化的主要内容,如果未能解决你的问题,请参考以下文章

$scope.$watch()——监听数据变化

vue 监听路由变化

vue中监听数据变化 watch

Vue-监听属性

初识vue 2.0(13):子组件使用watch监听父组件变化

HarmonyOS鸿蒙学习笔记(13)@Watch的作用 ——监听状态的变化