资讯专栏INFORMATION COLUMN

vue双向绑定原理(简单实现原理附demo)

Betta / 3012人阅读

摘要:先上效果图简单的实现数据的双向绑定首先来了解一个东西这里是对这个的详细说明简单点说这个方法可以修改现有对象属性的值参数说明定义属性的对象修改的属性修改的属性描述符这边只挑最简单的说,官方一个给属性提供的方法,如果没有则为。

先上效果图

简单的实现数据的双向绑定
首先来了解一个东西:Object.defineProperty()

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty

这里是MDN对这个的详细说明
简单点说:

这个方法可以修改现有对象属性的值
Object.defineProperty(obj, prop, descriptor)
参数说明:
    obj:定义属性的对象
    prop:修改的属性
    descriptor:修改的属性描述符

这边只挑最简单的说,

get:

官方:一个给属性提供 getter 的方法,如果没有 getter 则为 undefined。当访问该属性时,该方法会被执行,方法执行时没有参数传入,但是会传入this对象(由于继承关系,这里的this并不一定是定义该属性的对象)。默认为 undefined。

**简单的说:当你需要取对象的属性值时,就是来调用这个函数,取到值的**

set:

官方:一个给属性提供 setter 的方法,如果没有 setter 则为 undefined。当属性值修改时,触发执行该方法。该方法将接受唯一参数,即该属性新的参数值。默认为 undefined。

**简单的说:当你需要设置(改变)对象的属性值时,就是来调用这个函数,达到修改的**

接下来上代码



    
        
        
        
    
    
        

这段代码拷贝直接运行

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/97791.html

相关文章

  • vue双向绑定原理简单实现原理demo

    摘要:先上效果图简单的实现数据的双向绑定首先来了解一个东西这里是对这个的详细说明简单点说这个方法可以修改现有对象属性的值参数说明定义属性的对象修改的属性修改的属性描述符这边只挑最简单的说,官方一个给属性提供的方法,如果没有则为。 先上效果图showImg(https://segmentfault.com/img/bVbgZgZ?w=341&h=619); 简单的实现数据的双向绑定首先来了解一...

    junfeng777 评论0 收藏0
  • Vue源码学习(三)——数据双向绑定

    摘要:就是用于把变化放入观察,并通知其变化更新。这边数据双向绑定差不多就结束了。下一章节通过数据绑定原理结合来实现数据驱动更新的。 在Vue中我们经常修改数据,然后视图就直接修改了,那么这些究竟是怎么实现的呢?其实Vue使用了E5的语法Object.defineProperty来实现的数据驱动。那么Object.defineProperty究竟是怎么实现的呢?我们先来看一下一个简单的demo...

    sevi_stuo 评论0 收藏0
  • 使用form-create轻松生成高品质的form表单[原理图]

    摘要:目的是节省开发人员在表单页面上耗费的时间,从而更专注于功能开发。使用可快速便捷的生成日常开发中所需的各种表单。可通过后端返回生成规则,进行渲染。 form-create 具有动态渲染、数据收集、校验和提交功能的表单生成器,支持双向数据绑定、事件扩展以及自定义组件,可快速生成包含有省市区三级联动、时间选择、日期选择等17种功能组件。 已兼容iview2.和iview3.版本 Github...

    phodal 评论0 收藏0
  • 160行代码仿Vue实现极简双向绑定[详细注释]

    摘要:兼容性更详细的可以看一下实现思路系列的双向绑定,关键步骤实现数据监听器,用重写数据的,值更新就在中通知订阅者更新数据。 showImg(https://segmentfault.com/img/remote/1460000015375220?w=640&h=426); 前言 现在的前端面试不管你用的什么框架,总会问你这个框架的双向绑定机制,有的甚至要求你现场实现一个双向绑定出来,那对于...

    endiat 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<