Object.freeze( ) 阻止Vue无法实现 响应式系统
做了一个vue项目,总是边百度边写,知识体系不能系统起来,准备在浏览下vue.js官网基础知识。
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data
对象中能找到的所有的属性。当这些属性的值发生改变时,视图将会产生“响应”,即匹配更新为新的值。但是如果使用 Object.freeze()
,这会阻止修改现有的属性,也意味着响应系统无法再追踪变化。
具体使用办法举例:
<template><div><p>freeze后会改变吗{{obj.foo}}</p><!-- 两个都不能修改??为什么?第二个理论上应该是可以修改的--><button @click="obj.foo='会变'">点我确认</button></div>
</template><script>
var obj = {foo: '不会变'
}
Object.freeze(obj)
export default {name: 'index',data () {return {obj: obj}}
}
</script>
运行后:
从报错可以看出只读属性foo不能进行修改,Object.freeze()冻结的是值,你仍然可以将变量的引用替换掉,将上述代码更改为:
<button @click="change">点我确认</button>change () {this.obj = {foo: '会改变'}}
Object.freeze()是ES5新增的特性,可以冻结一个对象,冻结指的是不能向这个对象添加新的属性,不能修改其已有属性的值,不能删除已有属性,以及不能修改该对象已有属性的可枚举性、可配置性、可写性。防止对象被修改。 如果你有一个巨大的数组或Object,并且确信数据不会修改,使用Object.freeze()可以让性能大幅提升。
Object.freeze( ) 阻止Vue无法实现 响应式系统相关推荐
- 【Vue 3.0 新特性(四)】Vue 3.0 响应式系统原理
文章前言 笔记来源:拉勾教育 大前端高薪训练营 阅读建议:内容较多,建议通过左侧导航栏进行阅读 Vue 3.0 响应式系统原理 基础回顾 Vue.js 响应式回顾 Proxy 对象实现属性监听 多层属 ...
- 深入剖析Vue源码 - 响应式系统构建(上)
从这一小节开始,正式进入Vue源码的核心,也是难点之一,响应式系统的构建.这一节将作为分析响应式构建过程源码的入门,主要分为两大块,第一块是针对响应式数据props,methods,data,comp ...
- data的值 如何初始化vue_理解Vue响应式系统
深入理解 Vue 响应式系统 理解 Vue 响应式原理,到 computed.vuex 原理 前言 众所周知,一说到 vue 的响应式系统,就能马上想到 Object.defineProperty.数 ...
- 详细介绍Vue的数据响应式
Vue.js的核心包括一套"响应式系统"."响应式",是指当数据改变后,Vue会通知到使用该数据的代码.例如,视图渲染中使用了数据,数据改变后,视图也会自动更新 ...
- Vue.js 深入响应式原理
深入响应式原理 现在是时候深入一下了!Vue 最独特的特性之一,是其非侵入性的响应式系统.数据模型仅仅是普通的 JavaScript 对象.而当你修改它们时,视图会进行更新.这使得状态管理非常简单直接 ...
- Vue数据绑定和响应式原理
Vue数据绑定和响应式原理 当实例化一个Vue构造函数,会执行 Vue 的 init 方法,在 init 方法中主要执行三部分内容,一是初始化环境变量,而是处理 Vue 组件数据,三是解析挂载组件.以 ...
- vue源码分析-响应式系统(二)
为了深入介绍响应式系统的内部实现原理,我们花了一整节的篇幅介绍了数据(包括data, computed,props)如何初始化成为响应式对象的过程.有了响应式数据对象的知识,上一节的后半部分我们还在保 ...
- vue 2.0响应式源码实践,麻麻,我再也不怕被面试官提问啦
vue2.0/vue3.0响应式源码实践,麻麻,我再也不怕被面试官提问啦 写在前面 vue2.0响应式源码实现 1. 先创建一个对象 2.实现observer方法 3.接下来我们对observer函数 ...
- 一张图理清 Vue 3.0 的响应式系统
点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Success is actually simple – when you ...
- vue响应式系统--observe、watcher、dep
Vue的响应式系统 Vue 最独特的特性之一,是其非侵入性的响应式系统.数据模型仅仅是普通的JavaScript 对象,而当你修改它们时,视图会进行更新,这使得状态管理非常简单直接,我们可以只关注数据 ...
最新文章
- 电大计算机dm编写程序,中央电大计算机组成原理与汇编语言试题.docx
- 转:Xcode下的GDB调试命令
- aws 数据库迁移_AWS Loft的数据库周
- ip申请 web应用_网络协议端口TCP/IP概览
- MySQL InnoDB 存储引擎索引那些事儿
- shell脚本--判断输入的ip是否正确
- python 读取excel失败 可以转换成csv文件
- 手机浏览器自动播放视频video(设置autoplay无效)的解决方案
- Android中生成库文件与移除以及导入jar包重复问题
- 修复Linux系统内核TCP漏洞,Linux 内核中TCP SACK机制远程Dos漏洞处理方法(CVE-2019-11477) | 聂扬帆博客...
- 打印机显示smtp服务器未设置,打印机smtp服务器设置方法
- 加拿大移民政策调整,注意,这些可能会影响到你
- “字号”和“磅”的对应关系
- 【网络原理】一个数据包从发送到接收在网络中经历了那些过程(详细分析)
- 获取图片Exif信息
- Python第9章 类
- asp.net 输入框在chrome中无法关闭自动提示
- SaaS 云服务部署的3种形式:灵活选择,效益最优调控
- 从放大器开始谈模拟电子
- 小度智能音箱冲上王座
热门文章
- Linux终端控制台console和earlycon分析
- arm汇编指令之数据块传输(LDM,STM)详见
- Linux内核多线程(二)
- linux调度器(九)——调度器的配置参数
- 栈和队列常用函数详解
- hive sql 13位毫秒时间戳转日期
- python format 格式化输出
- beanutils.copyproperties属性值丢失_数据质量 | 脏数据?缺失值、异常值和一致性分析?...
- java8 时间加一秒_好好讲讲关于Java中的时间处理
- nginx配置http访问自动跳转到https