• setup中使用watch


    watch属性监听器的作用在vue3.0中没有改变,还是监听值得变化。

    vue3.0中,仍然支持watch配置项。但是我们要在setup中使用watch得话,我们要导入watch的API,然后往watch函数中传参。

    注意我们在setup中监视的数据要是响应式的,即数据要经过ref或者reactive处理。

    当监视的基本类型的数据时,用法:watch("数据名",处理函数,配置对象(可省))

    写一个例子:监视变量a的改变

    1. <template>
    2. <div>
    3. <p>{{a}}p>
    4. <button @click="changerandom">随机修改a的值button>
    5. div>
    6. template>

    当我们第三个参数对象配置上immediate:true时,页面初始加载时就会调用一次监听打印,这时没有旧值就为undefined.

    浏览器打印情况:

     当点击按钮,a的value值-37,被监听到。

    当监视的是引用数据类型时,用法也是:watch("数据名",处理函数,配置对象(可省))

    不过当监听的是引用数据时,有几点需要注意:1、处理函数获取不了旧值,我们打印出来的跟新值一样,这是vue3.0的一个bug;2、引用数据内部默认开启深度监听,而且手动deep:false关闭不了。

    写一个例子:

    1. <template>
    2. <div>
    3. <p>{{obj.age}}p>
    4. <button @click="changeage">age加一button>
    5. div>
    6. template>

    当点击按钮以后,检测到引用数据内部属性值的改变,浏览器控制台打印情况:

     有关引用数据还有一个问题,当监听reactive处理过的引用数据内的一个引用数据时,这时它不具备默认深度监听,需要手动开启。并且如果要监听某个引用数据的属性,watch的第一个参数不再是写对象的引用,而是要写为函数的返回值的形式。

    如监听上述例子的other属性,

    1. <template>
    2. <div>
    3. <p>{{{obj.other.hobby}}p>
    4. <button @click="changehobby">改变兴趣button>
    5. div>
    6. template>
  • 相关阅读:
    八一书《乡村振兴战略下传统村落文化旅游设计》许少辉瑞博士生辉少许——2023学生开学季许多少年辉光三农
    Go-Excelize API源码阅读(三十四)——RemoveRow
    怎样挑选鱼头 鱼头怎么做好吃
    TPM零知识学习四 —— tpm2-tss源码安装
    iNeuOS工业互联网操作系统,设备运维业务和“低代码”表单开发工具
    后端校验简单聊聊
    国际标准ISO/IEC 30144: 2020在智能变电站辅助监测中的应用研究
    详解什么是软件企业认定
    【第十四届蓝桥杯单片机组】个人笔记汇总
    Ubuntu 18.04 LTS PWN安装
  • 原文地址:https://blog.csdn.net/m0_59345890/article/details/126956954