• Vue14 深度监视


    深度监视

    • 深度监视:
      (1).Vue中的watch默认不监测对象内部值的改变(一层)。
      (2).配置deep:true可以监测对象内部值改变(多层)。
    • 备注:
      (1).Vue自身可以监测对象内部值的改变,但Vue提供的watch默认不可以!
      (2).使用watch时根据数据的具体结构,决定是否采用深度监视。
    DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8" />
    		<title>天气案例_深度监视title>
    		
    		<script type="text/javascript" src="../js/vue.js">script>
    	head>
    	<body>
    		
    		
    		<div id="root">
    			<h2>今天天气很{{info}}h2>
    			<button @click="changeWeather">切换天气button>
    			<hr/>
    			<h3>a的值是:{{numbers.a}}h3>
    			<button @click="numbers.a++">点我让a+1button>
    			<h3>b的值是:{{numbers.b}}h3>
    			<button @click="numbers.b++">点我让b+1button>
    			<button @click="numbers = {a:666,b:888}">彻底替换掉numbersbutton>
    			{{numbers.c.d.e}}
    		div>
    	body>
    
    	<script type="text/javascript">
    		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
    		
    		const vm = new Vue({
    			el:'#root',
    			data:{
    				isHot:true,
    				numbers:{
    					a:1,
    					b:1,
    					c:{
    						d:{
    							e:100
    						}
    					}
    				}
    			},
    			computed:{
    				info(){
    					return this.isHot ? '炎热' : '凉爽'
    				}
    			},
    			methods: {
    				changeWeather(){
    					this.isHot = !this.isHot
    				}
    			},
    			watch:{
    				isHot:{
    					// immediate:true, //初始化时让handler调用一下
    					//handler什么时候调用?当isHot发生改变时。
    					handler(newValue,oldValue){
    						console.log('isHot被修改了',newValue,oldValue)
    					}
    				},
    				//监视多级结构中某个属性的变化
    				/* 'numbers.a':{
    					handler(){
    						console.log('a被改变了')
    					}
    				} */
    				//监视多级结构中所有属性的变化
    				numbers:{
    					deep:true,
    					handler(){
    						console.log('numbers改变了')
    					}
    				}
    			}
    		})
    
    	script>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
  • 相关阅读:
    获取对象占用内存
    基于神经网络的图像分割,图像识别神经网络算法
    深入理解序列化:概念、应用与技术
    最大异或和【可持久化Trie】
    从vue源码中看diff算法
    Python自然语言处理的力量:NLTK库介绍
    面试总结之JVM入门
    实验 3--表的基本操作与数据查询
    EFCore 的 DbFirst 模式
    如何利用 xUnit 框架对测试用例进行维护?
  • 原文地址:https://blog.csdn.net/Rockandrollman/article/details/133688838