啥是双向绑定,两种方式实现两个简单双向绑定

看代码


    

以上代码写前端的都认识,input里面的value值会被赋值给str变量,但是当str变量本身发生变化的时候,input的value却不会产生变化,因为我们的addEventListener是单纯对input标签进行的监听,而没有函数对str这个值进行监听,当然我们可以使用以下的方法实现str和input的同步


    
    

但是我们可以注意到这种写法中我们还要点击一个button,我们想让这个str变量直接动态改变,input不用其他操作自动改变其value,由此我们就引入了双向绑定的概念,而其中的重点在于增样去监听变量的set方法,如str=“hahha”

以下是两种简单的双向绑定事件

第一种是利用defineProperty


    
    

我们可以通过浏览器的控制台去设置新值去看我们的input中的value会不会直接改变

啥是双向绑定,两种方式实现两个简单双向绑定_第1张图片

 第二种是Proxy的写法


    
    

两种写法其实有两个值,一个是和input绑定的监听者,另外一个是提供数据的被监听者,两者能够实现双向绑定的原因还是在于set方法,这个方法能在监听变量的赋值行为,并让我们做出dom操作,这才是最主要的。

今天想写文章,实在不知道写什么才写的这个。

你可能感兴趣的:(前端,vue.js)