美文网首页
js实现数据绑定

js实现数据绑定

作者: summer_味道制造 | 来源:发表于2018-03-06 16:54 被阅读0次

在进行代码编写前,我们先来认识一下数据绑定需要知道的知识

  1. getter与setter
    我们都知道javaScript中的对象是健值对的集合,在ES5中可以使用一个或两个方法来代替,这两个方法就是getter和setter。这两个方法定义的属性叫做“存储器属性”,不同于数据属性只有一个值。
    看下面代码
const obj = {
  name:'张三',
};
obj.name ;//  张三
obj.name = ‘李四’;

很常用的操作对不对,再我们没有使用getter和setter是这样操作的,那么假如我们要使用getter和setter那么代码又是怎样的呢,我们接着往下看

const obj = {
  get  name(){.....},
  set  name(){.....},
};

我们用两个方法取代了原来的值,那么这两个方法如何使用呢

const obj = {
 _name:'张三',
  get  name(){
    return this._name;
  },
  set  name(value){
    this._name = value;
  },
};
obj.name //张三
obj.name =''李四’;
obj.name //李四’

看到这里大家应该知道它是怎么运行的了吧,通过set,get方法我们可以创造无限可能,不过需要注意的是,一般来说get和set总是成对出现,如果只有get意味着只能读,只有set只能写。

  1. Object.defineProperty()
    Object.defineProperty(obj, prop, descriptor)方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象,它接受三个参数,分别是:
  • 要在其上定义属性的对象
  • 要定义或修改的属性的名称
  • 将被定义或修改的属性描述符
    关于属性的描述,请参考descriptor;我们对数据双向绑定的实现完全来自于Object.defineProperty();
<input  type="text">
-----------------------------
const obj = {};
Object.defineProperty(obj, 'name', {
      get() {
        return document.getElementsByTagName('input')[0].value;
      },
      set(value) {
        document.getElementsByTagName('input')[0].value = value;
      },
      configurable: true
 });
document.getElementsByTagName('input')[0].onchange = function () {
      console.log('obj', obj.name);
 }

以上就是实现数据绑定的简易实现,所有大家明白了为什么ie8以下为什么不能直接使用三大框架?

相关文章

  • js实现数据双向绑定

    接上一篇文章《js实现数据单向绑定》上篇文章中用原生js实现了数据的单向绑定。本篇文章继续介绍如何用js实现数据的...

  • JS双向数据绑定

    双向数据绑定简述 双向数据绑定,可以将JS对象的属性绑定到DOM节点上,实现JS对象跟DOM节点的同名属性的关联,...

  • vuejs如何实现数据双向绑定 与 Object.defineP

    vuejs如何实现数据双向绑定 实现数据绑定的做法有大致如下几种: 发布者-订阅者模式(backbone.js)脏...

  • Vue框架基础

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

  • js实现数据绑定

    在进行代码编写前,我们先来认识一下数据绑定需要知道的知识 getter与setter我们都知道javaScript...

  • epii.js简约而不简单的JS模板引擎

    epii.js是什么 epii.js是一个 模板引擎,可快速实现数据与ui绑定,快速实现事件绑定,与处理,不依赖任...

  • vue 入门

    1.1 vue的引入数据的双向绑定:也就是数据的同步修改 1.1.1. vue与js的对比----js的实现 --...

  • Vue.js 双向数据绑定原理分析

    在使用Vue.js自定义组件时,很多时候,我们都期望数据是双向绑定的。 Vue.js实现双向数据绑定的两种方式 1...

  • 2019-01-15 微信小程序开发学习--页面事件和数据绑定

    数据绑定 微信小程序的数据绑定与vue相似,数据来源是通过js中的data来绑定 在js的page中定义数据,数据...

  • 原来vue的原理是这样的

    vue.js中有两个核心功能:响应式数据绑定,组件系统。主流的mvc框架都实现了单向数据绑定,而双向绑定无非是在单...

网友评论

      本文标题:js实现数据绑定

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