资讯专栏INFORMATION COLUMN

Vue 动态数据绑定核心方法

Kyxy / 3102人阅读

摘要:返回值返回传入函数的对象,即第一个参数。描述该方法允许精确添加或修改对象的属性。数据描述符同时具有以下可选键值该属性对应的值。该方法返回值被用作属性值。该方法将接受唯一参数,并将该参数的新值分配给该属性。

引言

我之前经常使用 Vue,后来不满足于仅仅使用它,我想了解其内部实现原理,所以就尝试学习其源码,获益匪浅。所以,如果你跟我一样,希望挑战这高难度的事情,那就开启这一系列吧!

基本上 MVVM 数据双向绑定的框架大都采用了大量的 Object.defineProperty 来实现。

Object.defineProperty 语法

Object.defineProperty(obj, prop, descriptor)

参数:

obj

      需要定义属性的对象。

prop

      需定义或修改的属性的名字。

descriptor

      将被定义或修改的属性的描述符。

返回值

      返回传入函数的对象,即第一个参数obj。

描述

该方法允许精确添加或修改对象的属性。一般情况下,我们为对象添加属性是通过赋值来创建并显示在属性枚举中(for...inObject.keys 方法), 但这种方式添加的属性值可以被改变,也可以被删除。而使用 Object.defineProperty() 则允许改变这些额外细节的默认设置。例如,默认情况下,使用 Object.defineProperty() 增加的属性值是不可改变的。

对象里目前存在的__属性描述符__有两种主要形式:数据描述符存取描述符。数据描述符是一个拥有可写或不可写值的属性。存取描述符是由一对 getter-setter 函数功能来描述的属性。描述符必须是两种形式之一;不能同时是两者。

数据描述符和存取描述符均具有以下可选键值:

configurable

      当且仅当该属性的 configurable 为 true 时,该属性描述符才能够被改变,也能够被删除。默认为 false

enumerable

      当且仅当该属性的 enumerable 为 true 时,该属性才能够出现在对象的枚举属性中。默认为 false

数据描述符同时具有以下可选键值:

value

      该属性对应的值。可以是任何有效的 JavaScript 值(数值,对象,函数等)。默认为 undefined

writable

      当且仅当该属性的 writable 为 true 时,该属性才能被赋值运算符改变。默认为 false

存取描述符同时具有以下可选键值:

get

      一个给属性提供 getter 的方法,如果没有 getter 则为 undefined。该方法返回值被用作属性值。默认为 undefined

set

      一个给属性提供 setter 的方法,如果没有 setter 则为 undefined。该方法将接受唯一参数,并将该参数的新值分配给该属性。默认为 undefined

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

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

相关文章

  • VUE

    摘要:注意指令前面需要加,对指令传递数据赋值使用例如约定速成加上,表示自定义指令不要使用驼峰式命名。需要通过方法实现自定义指令注册完成。 vue Vue.js 构建数据驱动的web界面库。集中实现MVVM 的 VM层。容易与其他库或项目整合 通过尽可能简单的API实现相应的数据绑定和组合的视图组件核心:相应的数据绑定系统, 数据与DOM保持同步数据驱动的视图,普通的HTML模板中使用特殊的语...

    bergwhite 评论0 收藏0
  • Vue_Vue权威指南

    摘要:效率不高,很多多余,称之为脏检查。通过索引设置数组元素并触发视图更新。解决闪烁问题自定义指令自定义指令提供一种机制将数据的变化映射为行为。 Vue特性 Vue只是聚焦视图层,是一个构建数据驱动的Web界面的库。 Vue通过简单 API提供高效的数据绑定和灵活的组件系统 轻量 数据绑定 指令 插件化 架构从传统后台MVC 向REST API + 前端MV*迁移DOM是数据的一种自然映...

    SimonMa 评论0 收藏0
  • vue面试

    摘要:虽然计算属性在大多数情况下更合适,但有时也需要一个自定义的侦听器,当需要在数据变化时执行异步或开销较大的操作时,通过侦听器最有用。路由的钩子函数首页可以控制导航跳转,,等,一般用于页面的修改。 谈谈你对MVVM开发模式的理解 MVVM分为Model、View、ViewModel三者。Model 代表数据模型,数据和业务逻辑都在Model层中定义;View 代表UI视图,负责数据的展示;...

    vspiders 评论0 收藏0
  • 详解vue组件三大核心概念

    摘要:前言本文主要介绍属性事件和插槽这三个基础概念使用方法及其容易被忽略的一些重要细节。至于如何改变,我们接下去详细介绍单向数据流这个概念出现在组件通信。比如上例中在子组件中修改父组件传递过来的数组从而改变父组件的状态。的一个核心思想是数据驱动。 前言 本文主要介绍属性、事件和插槽这三个vue基础概念、使用方法及其容易被忽略的一些重要细节。如果你阅读别人写的组件,也可以从这三个部分展开,它们...

    rickchen 评论0 收藏0
  • vue 学习小结 送给新手

    摘要:只要数据发生改变,立即更新,由表单等带来的数据改变,数据相应字段也会发生相应改变。三界面的更新的输入,导致的值更新,元素内,任何表达式与有关的,都将重新计算,斌企鹅自动更新界面。作为组件化思维的先驱当年统计的组件多达多个。 Vue 是现在最火的前端JavaScript 开发框架。首先,接受它的思想 View 模板即html,静态界面Model 数据源 模型 界面所有的数据负责提供及管理...

    terasum 评论0 收藏0

发表评论

0条评论

Kyxy

|高级讲师

TA的文章

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