码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【VUE复习·6】监视属性watch:用途、两种写法、简写、应用时注意事项(重点)、深度监视(重点)


    总览

    1.监视属性是用来干什么的?
    2.监视属性的两种写法
    3.应用时注意事项
    4.深度监视

    一、监视属性是用来干什么的?

    1.用途

    监视一个值(可以是基本属性 data,或者是计算属性 computed)是否被改变。如果此值被改变,那么则触发一个事件。

    比如说,在下图示例代码中,我们监视了 基本属性isHot ,如果 isHot 的值发生了改变,那么我们就会执行 handler 函数(完整写法中),且我们能够拿到改变前的值(oldValue)和 改变后的值(newValue)。

    在这里插入图片描述

    二、监视属性的两种写法

    1.方法1

    如上图(或下图都一样)。
    简写时,我们不需要写 handler 函数,直接在被监视对象中写即可。

    在这里插入图片描述

    2.方法2

    如下图:
    请注意,下图中,也就是方法2中,这种监视方式必须将 .$watch 挂在 VUE 实例后面,要写在 VUE 实例对象之外,而不能和 data、computed、methods 等一样,写在 VUE 实例之内。

    在这里插入图片描述

    三、应用时注意事项

    1. 多级结构的写法

    因为最原生的写法中,应该是 VUE实例.$watch(‘监视对象’,{ handler(){xxx} })
    请注意,监视对象是需要被 ’ ’ 括起来的。我们刚才直接写的 watch:{ isHot:{} } 其实是简写,完整的应该是:watch:{ ‘isHot’:{} } 。

    所以,在对有多级结构的数据进行监视的时候,我们需要给监视的(watch内的)对象加上 ’ '。如图所示:

    在这里插入图片描述

    四、深度监视

    1.错误示例

    我们想要监测一个结构中所有值的变化。
    比如 numbers.a 和 numbers.b 只要其中一个变化了,那么就触发了 “numbers改变了” 这个 console.log。

    如果我们像下面这样写,其实是无效的。因为下面的写法监视的不是 numbers 中 a、b 的变化,而是整个 numbers 中内容的地址值的变化。这是不行的。

    在这里插入图片描述

    2.正确示例

    正确写法是,我们需要加上一个属性标签 deep:true。告诉 VUE 我们要对 numbers 这个结构内的所有键值进行监视,谁变了都会触发 “numbers改变了” 这个 console.log。

    在这里插入图片描述

  • 相关阅读:
    uni-app简介、条件编译、App端Nvue开发、HTML5+、开发环境搭建、自定义组件、配置平台环境、uniCloud云开发平台
    rt-thread + lvgl :线程调用lv_task_handler() 之后,无法休眠
    allegro中shape的一些基本操作(二)——铜皮添加网络、合并shape
    H5点击复制功能 兼容安卓、IOS
    攻防演练-组织沙盘推演的4个阶段.
    OpenCV自学笔记二十三:K近邻算法
    基于马科维茨与蒙特卡洛模型的资产最优配置模型(Matlab代码实现)
    SATA系列专题之四:4.0 Command Layer命令层概述
    【Spring注解大全】
    【C++】继承(定义、菱形继承、虚拟继承)
  • 原文地址:https://blog.csdn.net/qq_43768851/article/details/133359668
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号