摘要:返回值返回传入函数的对象,即第一个参数。描述该方法允许精确添加或修改对象的属性。数据描述符同时具有以下可选键值该属性对应的值。该方法返回值被用作属性值。该方法将接受唯一参数,并将该参数的新值分配给该属性。
引言
我之前经常使用 Vue,后来不满足于仅仅使用它,我想了解其内部实现原理,所以就尝试学习其源码,获益匪浅。所以,如果你跟我一样,希望挑战这高难度的事情,那就开启这一系列吧!
基本上 MVVM 数据双向绑定的框架大都采用了大量的 Object.defineProperty 来实现。
Object.defineProperty 语法参数:Object.defineProperty(obj, prop, descriptor)
obj
需要定义属性的对象。
prop
需定义或修改的属性的名字。
descriptor
将被定义或修改的属性的描述符。
返回值返回传入函数的对象,即第一个参数obj。
描述该方法允许精确添加或修改对象的属性。一般情况下,我们为对象添加属性是通过赋值来创建并显示在属性枚举中(for...in 或 Object.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只是聚焦视图层,是一个构建数据驱动的Web界面的库。 Vue通过简单 API提供高效的数据绑定和灵活的组件系统 轻量 数据绑定 指令 插件化 架构从传统后台MVC 向REST API + 前端MV*迁移DOM是数据的一种自然映...
摘要:前言本文主要介绍属性事件和插槽这三个基础概念使用方法及其容易被忽略的一些重要细节。至于如何改变,我们接下去详细介绍单向数据流这个概念出现在组件通信。比如上例中在子组件中修改父组件传递过来的数组从而改变父组件的状态。的一个核心思想是数据驱动。 前言 本文主要介绍属性、事件和插槽这三个vue基础概念、使用方法及其容易被忽略的一些重要细节。如果你阅读别人写的组件,也可以从这三个部分展开,它们...
摘要:只要数据发生改变,立即更新,由表单等带来的数据改变,数据相应字段也会发生相应改变。三界面的更新的输入,导致的值更新,元素内,任何表达式与有关的,都将重新计算,斌企鹅自动更新界面。作为组件化思维的先驱当年统计的组件多达多个。 Vue 是现在最火的前端JavaScript 开发框架。首先,接受它的思想 View 模板即html,静态界面Model 数据源 模型 界面所有的数据负责提供及管理...
阅读 2120·2021-11-05 09:42
阅读 2863·2021-09-23 11:21
阅读 2860·2019-08-30 14:00
阅读 3325·2019-08-30 13:15
阅读 475·2019-08-29 17:18
阅读 3565·2019-08-29 16:29
阅读 2767·2019-08-29 14:06
阅读 2803·2019-08-23 14:41