如何用javascript实现双向数据绑定,如何用javascript实现双向数据绑定?

js实现数据双向绑定,需要用到Object.defineProperty()这个对象方法,这是一个比较神奇的方法,它的作用是用于配置对象值的属性,比如:对象的某个属性是否可配置、可读写、可枚举等。它也是vue框架底层,实现数据双向绑定的核心方法。

重写对象属性的setter、getter

用Object.defineProperty()创建一个全局对象obj,并设置一个属性name,然后重写这个属性的get、set方法。在设置obj对象name属性值时,set方法会自动调用;在读取obj对象name属性时,get方法会自动调用。

如何用javascript实现双向数据绑定,如何用javascript实现双向数据绑定?

监听文本框数据事件,并更新数据

绑定文本框的输入事件,在事件中设置obj对象的name值,此时set方法会自动调用,在set方法中,拦截数据val,把val的值赋给name属性,并更新span元素显示name的值。

如何用javascript实现双向数据绑定,如何用javascript实现双向数据绑定?

运行效果如下:

如何用javascript实现双向数据绑定,如何用javascript实现双向数据绑定?

可以看到,对象obj的name属性值,在随着文本框内容的改变而改变。

改变对象属性值,更新文本框显示

在set方法中,监听到obj对象name属性值的改变,拦截数据val,把数据更新到文本框中显示。

如何用javascript实现双向数据绑定,如何用javascript实现双向数据绑定?

运行并改变obj的name值,效果如下:

如何用javascript实现双向数据绑定,如何用javascript实现双向数据绑定?

可以看到,在控制台中,改变obj的name属性值,左边文本框中的内容也发生了改变,这样,我们就实现了一个简单的,数据双向绑定操作。

完整代码截图:如何用javascript实现双向数据绑定,如何用javascript实现双向数据绑定?

码字、做图不易,觉得不错的盆友,望多点赞转发,谢谢支持。

如何用javascript实现双向数据绑定,如何用javascript实现双向数据绑定?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论