首页 > 其他分享 >vue监视之深度监视

vue监视之深度监视

时间:2022-10-31 10:34:36浏览次数:41  
标签:vue 监视 isHot handler numbers 深度 true newValue

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script type="text/javascript" src="../js/vue.js"></script>

    <title>监视属性深度监视</title>
</head>
<body>
    <!-- vue中的watch 默认不监视对象属性中的内部值的改变
        配置deep:true可以监视对象内部值的改变(多层)

        备注:
            vue自身可以检测对象内部值改变,但是vue提供的watch默认不可以
            使用watch需要根据对象的结构决定是否采用深度监视

    -->
    <div id="root">
        <h1>今天天气{{inFo}}</h1>
        <!-- 绑定事件的时候,事件 @xxx="yyy",yyy可以写一些简单的语句 -->
        <!-- <button @click="isHot=!isHot">切换天气</button> -->
        <button @click="chang">切换天气</button
            ><br>
        <h1>a的值是{{numbers.a}}</h1>    
        <button @click="numbers.a++">点我a+1</button>
            <br>
        <h1>b的值是{{numbers.b}}</h1>
        <button @click="numbers.b++">点我b+1</button>

    </div>
    <script>
        const vm=new Vue({
            el:"#root",
            data:{
                isHot:true,
                numbers:{
                    a:1,
                    b:1
                }

            },
            methods: {
                chang(){
                    this.isHot=!this.isHot;
                }
            },
            computed:{
                inFo(){
                    return this.isHot ? '炎热' : '凉爽';
                }
            },
            watch:{
                isHot:{
                    // immediate:true,//初始化时让handler调用一下
                    //handler在isHot发生改变时触发
                    handler(newValue,oldValue){
                        console.log(newValue,oldValue)
                    }
                },
                /* //监视多级结构中某个属性的变化
                "numbers.a":{
                    handler(){

                    }
                } */
                //监视多级结构中所有属性的变化
                numbers:{
                    deep:true,
                    handler(){

                    }
                }

            }

        })

        // vm.$watch("isHot",{
        //       // immediate:true,//初始化时让handler调用一下
        //     //handler在isHot发生改变时触发
        //     handler(newValue, oldValue) {
        //         console.log(newValue, oldValue)
        //     }
        // })
    </script>
</body>
</html>

 

标签:vue,监视,isHot,handler,numbers,深度,true,newValue
From: https://www.cnblogs.com/xiaobaizitaibai/p/16843435.html

相关文章

  • Vue组件是怎样挂载的
    我们先来关注一下$mount是实现什么功能的吧:我们打开源码路径core/instance/init.js:exportfunctioninitMixin(Vue:Class<Component>){......initLifec......
  • Vue模板是怎样编译的
    这一章我们开始讲模板解析编译:总结来说就是通过compile函数把tamplate解析成renderFunction形式的字符串compiler/index.jsimport{parse}from'./parser/index'imp......
  • vue开发环境,可以配置,域名访问模式嘛,这样线上项目就可以不用打包来访问了
    看了很多博文,本地也配置了,域名需要结合端口号来访问(多个项目也不可能都是80的,所以还是需要端口号的)不需要nginx配置/etc/host域名指向127.0.0.1https://www.cnblogs......
  • 深度剖析Java的volatile实现原理,再也不怕面试官问了
    上篇文章我们讲了synchronized的用法和实现原理,我们总爱说synchronized是重量级锁,volatile是轻量级锁。为什么volatile是轻量级锁,体现在哪些方面?以及volatile的作用和实现......
  • vue源码分析-响应式系统(三)
    上一节,我们深入分析了以data,computed为数据创建响应式系统的过程,并对其中依赖收集和派发更新的过程进行了详细的分析。然而在使用和分析过程中依然存在或多或少的问题,这......
  • vue源码分析-响应式系统(一)
    从这一小节开始,正式进入Vue源码的核心,也是难点之一,响应式系统的构建。这一节将作为分析响应式构建过程源码的入门,主要分为两大块,第一块是针对响应式数据props,methods,da......
  • vue源码分析-动态组件
    前面花了两节的内容介绍了组件,从组件的原理讲到组件的应用,包括异步组件和函数式组件的实现和使用场景。众所周知,组件是贯穿整个Vue设计理念的东西,并且也是指导我们开发的......
  • vue监视属性1
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-e......
  • 深度学习训练营(一)
    前言:​​pipinstall-Uscikit-learn​​安装sklearn模块文章目录​​x[:,0]和x[:,1]理解和实例解析​​​​load_boston数据集​​​​zip函数​​​​关于loss函数理解......
  • Vue开发历程---音乐播放器的继续
    前言前面一篇文章​​Vue开发历程---音乐播放器​​,实现了播放音乐,以及基本的布局。但是进度条没有实现同步,本文即介绍进度条的实现。一、效果图二、心路历程1、elementUI......