首页 > 其他分享 >Vue学习笔记6:深度监视

Vue学习笔记6:深度监视

时间:2023-11-05 18:44:17浏览次数:39  
标签:Vue watch 笔记 newVal oldVal numbers 监视

6. 深度监视

监视number.a的变化:

<!--准备好一个容器-->
<div id="root">
    <h3>a的值是:{{numbers.a}}</h3>
    <button @click="numbers.a++">点我让a+1</button>
</div>

<script type="text/javascript">
    Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

    var vm = new Vue({
        el: '#root',
        data: {
            isHot: true,
            numbers: { a: 1, b: 1 }
        },
        watch: {
            //监视多级结构中某个属性的变化
            'numbers.a': {
                handler(newVal, oldVal) {
                    console.log('a被修改了', newVal, oldVal);
                }
            },

            //点击按钮后,发生不会有日志输出
            numbers: {
                handler(newval, oldVal) {
                    console.log('numbers被修改了', newVal, oldVal);
                }
            }
        }
    })
</script>

只有这样写才会让numbers对象的地址发生变化:

<!--准备好一个容器-->
<div id="root">
    <h3>a的值是:{{numbers.a}}</h3>
    <button @click="numbers.a++">点我让a+1</button>
    <h3>a的值是:{{numbers.b}}</h3>
    <button @click="numbers.b++">点我让b+1</button>
</div>

<script type="text/javascript">
    Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

    var vm = new Vue({
        el: '#root',
        data: {
            isHot: true,
            numbers: { a: 1, b: 1 }
        },
        watch: {
            //监视多级结构中某个属性的变化
            'numbers.a': {
                handler(newVal, oldVal) {
                    console.log('a被修改了', newVal, oldVal);
                }
            },

            //监视多级结构中所有属性的变化
            numbers: {
                deep: true,
                handler(newVal, oldVal) {
                    console.log('numbers的某个属性被修改了', newVal, oldVal);
                }
            }
        }
    })
</script>

总结:

  1. Vue中的watch默认不监测对象内部值的改变
  2. 配置deep: true可以监测对象内部值的改变
  3. 备注:
    • Vue自身可以监测对象内部值的改变,但Vue提供的watch默认不可以
    • 使用watch时根据数据的具体结构,决定是否采用深度监视

标签:Vue,watch,笔记,newVal,oldVal,numbers,监视
From: https://www.cnblogs.com/Ceri/p/17810881.html

相关文章

  • Vue学习笔记5:监视属性
    5.监视属性在watch中通过一个配置(isHot),监视data中的isHot这个属性,以及info这个计算属性。<!--准备好一个容器--><divid="root"><h2>今天天气很{{info}}</h2><!--绑定事件的时候:@xxx="yyy"yyy可以写一些简单的语句--><!--<button@click="isHot=......
  • linux其他命令(查找,软链接,打包和压缩,软件安装)笔记
     1,查找文件 * 是通配符,代表任意字符,0到多个。find路径 -name "*.txt" :查找在路径下所有以.txt结尾的文件。 2,软链接  (1)将桌面目录下的1.txt移动到a/b/c目录下 (2)在桌面目录下新建1.txt的软链接1_xiangdui,使用相对路径 使用绝对路径 用......
  • Vue项目使用“花生壳“制作内网穿透---->步骤
     软件下载注册登录实名认证设置映射修改vue.config.js: const{defineConfig}=require('@vue/cli-service')module.exports=defineConfig({transpileDependencies:true,devServer:{historyApiFallback:true,disableHostCheck:true,//allowedHos......
  • Vue学习笔记4: 天气案例
    4.Vue学习笔记4:天气案例<!--准备好一个容器--><divid="root"><h2>今天天气很{{info}}</h2><!--绑定事件的时候:@xxx="yyy"yyy可以写一些简单的语句--><!--<button@click="isHot=!isHot">切换天气</button>-->......
  • Vue学习笔记2:计算属性,及其简写形式
    2.计算属性,及其简写形式data中的各项就是属性。所谓计算属性,就是拿已经写好的属性去加工或计算,生成一个全新的属性。计算属性在computed里,是一个对象。对象里可以有计算属性的getter和setter,他们都是function。与Object.defineProperty方法中的getter和setter是一样的,并且计算......
  • Vue学习笔记1:Hello World小案例
    1.HelloWorld小案例1.1采用组件化模式,提高代码复用率、且让代码更好维护。1.2声明式编码,让编码人员无需直接操作DOM,提高开发效率。1.3学习Vue之前要掌握的Javascript基础知识ES6语法规范ES6模块化包管理器原型、原型链数组常用方法axiospromiseVSCode插件:Liv......
  • 《AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE》阅
    论文标题《ANIMAGEISWORTH16X16WORDS:TRANSFORMERSFORIMAGERECOGNITIONATSCALE》谷歌论文起名越来越写意了,“一幅图像值16X16个单词”是什么玩意儿。ATSCALE:说明适合大规模的图片识别,也许小规模的不好使作者来自GoogleResearch的Brain团队,经典的同等贡献......
  • 高并发的哲学原理-笔记
    1、开门见山,先说结论,高并发的哲学原理就是——找出单点,进行拆分。要将每一个“大单点”都拆成“一个小单点+多个资源并行”的形式。 2、宏内核和微内核架构https://zhuanlan.zhihu.com/p/394560786https://cloud.tencent.com/developer/article/2021291?areaSource=10200......
  • 《信息安全系统设计与实现》第九周学习笔记
      《信息安全系统设计与实现》第九周学习笔记第五章定时器及时钟服务硬件定时器定时器是由时钟源和可编程计数器组成的硬件设备。时钟源通常是一个晶体振荡器,会产生周期性电信号,以精确的频率驱动计数器。使用一个倒计时值对计数器进行编程,每个时钟信号减1。当计数减为0时......
  • trie(字典树)学习笔记
    trie(字典树)学习笔记trie可以在\(O(nL)\)的时间,\(O(n\left|\Sigma\right|L)\)的空间完成插入,查找字符串。其中\(L\)为字符串长,\(\Sigma\)为字符集inttrie[N][26],tot;inttag[N];voidinsert(){intn=str.size();intu=0;for(inti=0;i<n......