美文网首页
简单实现vue中数据双向绑定

简单实现vue中数据双向绑定

作者: feXiaojin | 来源:发表于2018-03-06 12:07 被阅读0次

vue中的数据双向绑定给我们在对数据进行操作的时候提供了非常大的便利,这里浅显的实现下vue中的数据双向绑定

关键词: Object.defineProperty

要实现vue数据双向绑定,首先得了解Object.defineProperty这个方法。

  Object.defineProperty(obj, prop, descriptor)

参数详解:
obj:要在其上定义属性的对象。
prop:要定义或修改的属性的名称。
descriptor:将被定义或修改的属性描述符。

这个方法主要是精确的添加或者修改对象的属性。
一个对象的属性分为以下几种:

vaule: 属性对应的值,
configurable: 属性是否可以被配置
enumerable:属性是否能被枚举
writable: 属性是否能被重写
get:给属性提供getter方法
set:给属性提供setter方法

这里举个例子:

var obj = {
    name: ''
}
var val = 456;
Object.defineProperty(obj,'name',{
    set: function(value) {
          val = value
    },
    get: function() {
          return  val
    }
})

console.log(obj.name)  // 456

从上面我们可以看到Object.defineProperty的大致用法,改变了obj的name属性
通过get提供的getter,获取了val的值,通过set提供的setter方法,设置name的值

具体实现一个输入框的双向数据绑定,input输入框的值发生变化时候,div做相应的显示。

<!--html-->
<input type="text" id="demo">
<div id="show"></div>

vue中的数据双向绑定是订阅者模式加数据劫持,我们简单模拟下。

  1. 定义要监听的对象
var data = {};
  1. 监听input输入框的keyup事件
document.getElementById('demo').addEventListener('keyup',function (e) {
    data.val = e.target.value;
},false)
  1. 用Object.defineProperty劫持监听的对象,然后赋值给div显示
Object.defineProperty(data,'val',{
    set: function (value) {
        document.getElementById('show').innerHTML = value;
    }
}) 

相关文章

  • vue 双向数据绑定

    Vue实现数据双向绑定的原理:Object.defineProperty()vue实现数据双向绑定主要是:采用数据...

  • 深入Vue响应式原理

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

  • Vue实现数据双向绑定的原理

    Vue实现数据双向绑定的原理:Object.defineProperty() vue实现数据双向绑定主要是:采用数...

  • Vue 实例 一

    Vue实例基础一 数据的双向绑定 v-model 绑定表单的相应事件,和数据实现动态的双向绑定,需要在Vue实例中...

  • Vue框架基础

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

  • 【转】JavaScript的观察者模式(Vue双向绑定原理)

    关于Vue实现数据双向绑定的原理,请点击:Vue实现数据双向绑定的原理原文链接:JavaScript设计模式之观察...

  • 前端理论面试--VUE

    vue双向绑定的原理(详细链接) VUE实现双向数据绑定的原理就是利用了 Object.definePropert...

  • 简单实现vue中数据双向绑定

    vue中的数据双向绑定给我们在对数据进行操作的时候提供了非常大的便利,这里浅显的实现下vue中的数据双向绑定 关键...

  • Vue回顾--一些可能面试到的技术点

    一、 Vue实现数据双向绑定的原理 vue实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过O...

  • (33)Vue购物车

    用v-model来双向绑定input控制checkbox是否选中 Vue中双向数据绑定是如何实现的 positio...

网友评论

      本文标题:简单实现vue中数据双向绑定

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