大家都知道,Vue项目中对数据的监听,提供了一个很好的钩子watch,watch可以极其方便的监听我们常用数据类型值的变化,但通常当我们想监听一个对象中,某个属性值的变化时,很难达到我们预期的效果。那么如何实现对象属性的深度监听呢?
  1. vue中提供了在watch监听时设置deep:true 就可以实现对对象的深度监听;
    •  直接监听对象--代码如下:

      1 watch:{
      2 obj:{ //监听的对象
      3 deep:true, //深度监听设置为 true
      4 handler:function(newV,oldV){
      5 console.log('watch中:',newV)
      6 }
      7 }
      8 }
    •  监听对象下某个属性--代码如下:

          data () {
      return {
      obj:{
      name:'夜空中最亮的星星',
      age:18
      }
      }
      },
      watch:{
      'obj.name':{
      deep:true,
      handler:function(newV,oldV){
      console.log('watch中:',newV)
      }
      }
      }
  2.利用computed配合watch实现单个属性的深度监听;
    •  代码如下:

       1     data () {
      2 return {
      3 obj:{
      4 name:'夜空中最亮的星星',
      5 age:18
      6 }
      7 }
      8 },
      9 computed:{
      10 name(){
      11 return this.obj.name;
      12 }
      13 },
      14 watch:{
      15 name(newV){
      16 console.log('watch中name为:',newV)
      17 }
      18 }

vue中如何深度监听一个对象?的更多相关文章

  1. vue中watch深度监听

    监听基本类型的都是浅度监听 watch的深度监听,监听复杂类型都是深度监听(funciton ,arrat ,object) // 监听对象 data(){ return { a:{ b:, c: } ...

  2. vue中的数据监听以及数据交互

    现在我们来看一下vue中的数据监听事件$watch, js代码: new Vue({ el:"#div", data:{ arr:[,,] } }).$watch("ar ...

  3. 在vue中使用watch监听对象或数组

    最近发现在vue中使用watch监听对象或者数组时,当数组或者对象只是单一的值改变时,并不会出发watch中的事件. 在找问题过程中,发现当数组使用push一类的方法时,会触发watch,如果只是单一 ...

  4. Vue.js中 watch(深度监听)的最易懂的解释

    <div> <p>FullName: {{fullName}}</p> <p>FirstName: <input type="text& ...

  5. Vue.js中 watch(深度监听)的最易懂的解释[转]

    https://blog.csdn.net/qq_36688143/article/details/81287535 taskData: { handler(v) { // watch 方法其实默认写 ...

  6. vue --》watch 深度监听的优化。

    话不多说,直接上代码,注释很清楚 <template> <div> <input type="text" v-model="value&qu ...

  7. vue中的事件监听之——v-on vs .$on

    跟着视频中老师的教学视频学vue的时候,看很多时候都用@(v-on)来监听子级emit的自定义事件,但在bus总线那块,又用.$on来监听bus自身emit的事件,v-on之间似乎相似但又不同,今天对 ...

  8. vue中输入框事件监听 v-on:input

    <van-field v-model="inputVal" v-on:input="search" />

  9. vue中的computed(计算属性)和watch(监听属性)的特点,以及深度监听

    //计算属性是根据data中已有的属性,计算得到一个新的属性, <div>全名:{{fullName}}</div> 创建计算属性通过computed关键字,它是一个对象 计算 ...

随机推荐

  1. 墙裂推荐!2020Android阿里&腾讯&百度&字节&美团校招面试汇总

    基本情况 2021届硕士生,Android开发岗 此文主要是2020年年初春招实习的面试和正式校招面试经验汇总,最终校招拿到了腾讯,百度,美团等offer 主要包括阿里4面,腾讯实习4面和校招4面,字 ...

  2. 学习vue过程中遇到的问题

    1.vue-quill-editor动态禁用 项目中把vue-quill-editor单独封装成了一个组件,通过props传递readOnly参数来设置是否禁用editor.开发中发现可以实现禁用效果 ...

  3. 实战爬取某网站图片-Python

    直接上代码 1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 from bs4 import BeautifulSoup 4 import request ...

  4. 为VIM添加Python扩展

    VIM的自带的脚本功能很强,但只能用在VIM自己上,如果让它支持Python脚本,那简直就无敌了,这个想法当然不是我想出来的,应该说英雄所见略同,于是乎vim7.2就内建了对python2.4的支持, ...

  5. Linux引导过程和服务过程

    目录 一.Linux操作系统引导过程 1.1.开机自检 1.2.MBR引导 1.3.GRUB菜单 1.4.加载Linux内核 1.5.init进程初始化 二.系统初始化进程 2.1.init进程 2. ...

  6. docker-compose部署mysql,redis,rabbitmq

    version: '3' services: mysql: image: mysql:5.7.31 container_name: mysql restart: always command: --c ...

  7. SQL中的聚合函数运用

    参考网址: https://zhuanlan.zhihu.com/p/245115561 聚合函数是什么 聚合函数是对一组值执行计算,并返回单个值的函数.常与 SELECT 语句的 GROUP BY ...

  8. mysql查询附近门店

    mysql 查询一个地点(经纬度) 附近N公里内的数据.(根据一个地点的经纬度查询这个地点方圆几公里内的数据)1.创建测试表 CREATE TABLE `location` ( `id` int(10 ...

  9. uwp 自定义语音识别规则

    xml  code ---------------------------------------------------- <Page x:Class="MyApp.MainPage ...

  10. mfc HackerTools防止程序双开

    来自:https://github.com/TonyChen56/HackerTools 1 HANDLE hMutex = CreateMutexA(NULL, FALSE, "GuiSh ...