Vue数据双向绑定原理和代码分析

                                                       **Vue的数据双向绑定原理和代码分析**
    前言:还急的刚出来找工作找那会儿,是真的太不容易了,随着信息技术的蓬勃发展,Web前端这一块儿的初级工作者已经是相当的饱和了,如果想在众多的应届毕业生中脱颖而出进入Web前端开发的领域。当下最流行的前端框架是最基础的要求,而框架中的Vue就是必须要掌握的其中之一的框架。
    凡是去面试,绝对会被问到会不会Vue,问到Vue绝对会被问到Vue的数据双向绑定原理的实现和理解。在此简短明了的分析一下这个问题。
    **原理:**
    *1*:Vue实现双向数据绑定的原理就是利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值(get)和设置属性值(set)的操作来实现的。
    *2:*它接收三个参数,要操作的对象,要定义或修改的对象属性名,属性描述符。
    *3:*重点就是最后的属性描述符。属性描述符是一个对象,主要有两种形式:数据描述符和存取描述符。这两种对象只能选择一种使用,不能混合两种描述符的属性同时使用
    *4:*上面说的get和set就是属于存取描述符对象的属性。
数据双向绑定
<body>
	
	<input type="text" id="inp">
	<div id="demo"></div>
	<script>
		var obj = {};
		var demo = document.querySelector('#demo')
		var inp = document.querySelector('#inp')
		Object.defineProperty(obj, 'name', {
			get: function() {
				return val;
			},
			set: function(newVal) { //当该属性被赋值的时候触发
				inp.value = newVal;
				demo.innerHTML = newVal;
			}
		})
		inp.addEventListener('input', function(e) {
			// 给obj的name属性赋值,进而触发该属性的set方法
			obj.name = e.target.value;
		});
		obj.name = '输入内容'; //在给obj设置name属性的时候,触发了set这个方法
		
	</script>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值