美文网首页
数据绑定(mvvm原理)

数据绑定(mvvm原理)

作者: Egde | 来源:发表于2017-12-09 15:07 被阅读0次

这只是将我的问题抛出来,期待我后期来修复。以面试题为例(此例跑不通)

vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。


/*

* TODO

* 数据绑定问题,这就是mvvm框架的原理性东西。

* 会涉及到闭包,上下文的改变

* --------------------------------------------

* 深入一点地话会涉及到:

*    依赖收集?

*/

# 题目

有一个全局变量a,有一个全局函数b,实现一个方法bindData,执行后。

a的任何赋值都会触发b的执行

# 考点

1: 涉及到底层的方法就是get和set

2: defineProperty使用

3: 闭包

# 思路

1:

# 代码,但是这根本不能使用,我不知道怎么弄了

function bindData(target, event) {

for (var key in target) {

if (target.hasOwnProperty(key)) {

(function() {

var v = target[key]

// 给对象上的属性定义一些规矩

Object.defineProperty(target, key, {

get: function() {

return v

},

set: function(_value) {

v = _value

event.call(this)  // 这里就是改变函数(event)的上下文了

}

})

})()

}

}

}

相关文章

  • Vue MVVM 原理实现

    核心原理 MVVM 双向数据绑定, 数据驱动视图 Vue 实现 MVVM 采用 数据劫持 + 发布订阅模式 : ...

  • 数据绑定(mvvm原理)

    这只是将我的问题抛出来,期待我后期来修复。以面试题为例(此例跑不通) vue.js 是采用数据劫持结合发布者-订阅...

  • Vue双向数据绑定原理

    剖析Vue实现原理 - 如何实现双向绑定mvvm 本文能帮你做什么?1、了解vue的双向数据绑定原理以及核心代码模...

  • 关于双向绑定的问题

    剖析Vue实现原理 - 如何实现双向绑定mvvm 本文能帮你做什么?1、了解vue的双向数据绑定原理以及核心代码模...

  • vue双向数据绑定

    剖析Vue原理、实现双向绑定MVVM 几种实现双向绑定的做法 目前几种主流的mvc(vm)框架都实现了单向数据绑定...

  • 双向数据绑定

    双向数据绑定 双向数据绑定基于MVVM框架,vue属于MVVM框架 MVVM:M等于model,V等于view,即...

  • Vue 进阶

    Vue 双向绑定原理 mvvm 双向绑定,采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defin...

  • vue高频面试题

    Vue 双向绑定原理 mvvm 双向绑定,采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defin...

  • MVVM数据双向绑定原理

    Vue.js双向绑定的实现原理 Object.defineProperty() 方法会直接在一个对象上定义一个新属...

  • Vue原理研究之双向数据绑定

    前言 本篇文章主要研究Vue的双向数据绑定的学习笔记。具体细节请参考《剖析Vue原理&实现双向绑定MVVM》。 原...

网友评论

      本文标题:数据绑定(mvvm原理)

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