美文网首页三月听我说
用Java理解Vue双向绑定

用Java理解Vue双向绑定

作者: STioPlato | 来源:发表于2020-04-09 12:25 被阅读0次

看同学一句话讲Vue双向绑定大致就是,Vue通过数据劫持和发布者-订阅者模式来实现双向绑定。

首先要介绍的是ES中的Object.defineProperty() 这东西有点东西。我们看看MDN上的demo 来源MDN

它的作用有点类似Java中的反射机制,直接对对象的属性进行定义操作,例子中定义了对象object1的属性property1的值和是否可重写为false。由于可重写为false,之后再重新定义value为77的时候就失效了。

说回它对双向绑定的作用,个人理解在JS中,每个对象默认都包含有自己的getter和setter,也就是get和set方法,get是获取这个属性的时候会触发的方法,set是对这个属性进行设定的时候会触发的方法。而这两个方法可以被Object.defineProperty来进行重写,这样事情就好办了。对于MVVM中的 数据发生变化引发视图发生变化 这一步来说,我们可以重写数据发生变化时的set方法,然后在数据被修改的时候把修改的数据全部收集起来,通知各个应该被通知到的视图组件(每个对应的组件都有自己对应的Watcher,里面包含了修改对应视图的逻辑),我的数据发生了变化,你们该改变视图了。之后再调用相对应的回调函数或者是什么函数,修改对应的视图。就这个逻辑,数据就牵引着视图发生变化了。

而在Vue中,在初始化Vue对象的时候会对所有组件的data对象进行object.defineProperty进行重写,这一点让我有点想到设计模式中的代理模式,个人感觉有点像是静态代理或者是动态代理的感觉哈哈哈哈。在所有对象data属性上的get和set方法进行了修饰,来实现双向绑定。

目前具体的了解就这么多,欢迎大佬们指正。

相关文章

  • 用Java理解Vue双向绑定

    看同学一句话讲Vue双向绑定大致就是,Vue通过数据劫持和发布者-订阅者模式来实现双向绑定。 首先要介绍的是ES中...

  • 02Vue.js的数据绑定

    理解Vue的双向数据绑定 Vue有一个显著的地方就是它拥有双向数据绑定功能,那么何为双向数据绑定呢?双向是指:HT...

  • Vue框架基础

    原生js与Vue框架的区别 用原生实现双向数据绑定 用Vue实现双向数据绑定 Vue是一个javaScript框架...

  • Vue的双向绑定v-model

    继续理解vue的双向绑定 首先,双向绑定的作用是,为了达到view --> model / model --> v...

  • Vue双向绑定的源码树结构分析

    本文的目标 以更加清晰的结构和逻辑让我们更好的理解Vue双向绑定的原理实现: 1、理解Vue的双向绑定代码实现逻辑...

  • vue 面试汇总(更新中...)

    1.说说对双向绑定的理解 1.1、双向绑定的原理是什么 我们都知道Vue是数据双向绑定的框架,双向绑定由三个重要部...

  • 深入Vue响应式原理

    1.Vue的双向数据绑定 参考 vue的双向绑定原理及实现Vue双向绑定的实现原理Object.definepro...

  • Vue 中的双向数据绑定

    双向绑定 单向数据流 双向绑定 or 单向数据流 Vue 是单向数据流,不是双向绑定 Vue 的双向绑定是语法糖 ...

  • vue 之 input 的value绑定

    vue双向绑定值 vue单向绑定值

  • Vue双向绑定

    Vue双向绑定 Obejct.defineProperty的setter/getter和发布订阅 Vue双向绑定原...

网友评论

    本文标题:用Java理解Vue双向绑定

    本文链接:https://www.haomeiwen.com/subject/eunqmhtx.html