当前位置: 首页 > news >正文

wordpress站群搭建极速网站开发

wordpress站群搭建,极速网站开发,网站维护 英文,北京中小企业建站价格响应式 :::tip 提示 我们了解过响应式可以同步更新数据和视图,但是其工作原理我们最好也要了解一下。这样当你使用时遇到一些常见的错误,也能够快速定位是什么问题导致的。 了解响应式原理之前,你必须要先去了解 ES5 的 Object.defineProper…

响应式

:::tip 提示
我们了解过响应式可以同步更新数据和视图,但是其工作原理我们最好也要了解一下。这样当你使用时遇到一些常见的错误,也能够快速定位是什么问题导致的。

了解响应式原理之前,你必须要先去了解 ES5 的 Object.defineProperty

:::

响应式是 Vue 最独特的特性之一,之前我们在 MVVM 模式中也有介绍到数据模型。数据模型你可以理解就是在选项 data 中定义的变量。数据模型在响应式系统中仅仅是普通的 JavaScript 对象。而当你修改它们时,视图会进行更新。这使得状态管理非常简单直接。而在传统的模式中,你修改 JavaScript 定义的数据后,还要手动更新 dom 是比较繁琐的。

所以在响应式中我们要知道定义的数据它是如何被跟踪的。例如我修改了选项 data 中的数据, vue 是怎么知道我改了,然后去触发更新视图操作的。

如何追踪变化

当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项时,Vue 将遍历此对象所有的 property,并使用 Object.defineProperty 把这些 property 全部转为 getter/setter。Object.defineProperty 是 ES5 中一个无法 shim 的特性,这也就是 Vue 不支持 IE8 以及更低版本浏览器的原因。无法 shim 代表没有办法将其降级成其他 API 进行使用。

这些 getter/setter 对用户来说是不可见的,但是在内部它们让 Vue 能够追踪依赖,在 property 被访问和修改时通知变更。

每个组件实例都对应一个 watcher 实例,它会在组件渲染的过程中把“接触”过的数据 property 记录为依赖。之后当依赖项的 setter 触发时,会通知 watcher,从而使它关联的组件重新渲染。

在这里插入图片描述

通过代码的方式进行演示一遍

<template><div id="app">{{ message }}</div>
</template><script>
export default {data() {return {message: 'Hello Vue!'}}
}
</script>

这是一个组件,所以会存在一个 watcher 实例,准备渲染这个页面之前,Vue 会把选项 data 的所有属性进行遍历并设置 getter/setter。在 getter 方法中实现了如果访问此属性,则会把访问的相关信息存储到依赖中记录。在 setter 方法中实现了如果此属性的数据被改了,则会通知 watcher 把当前属性所有依赖项关联的地方都重新渲染。例如 { message } 访问了 message 属性,所以它会被记录到依赖项中,当 message 属性被修改时,则 { message } 的部分会被重新渲染。

避免遇到 bug 无法跟踪问题

由于 JavaScript 的限制,Vue 不能检测数组和对象的变化。

因为 Vue2.0 的源码中是使用了 Object.defineProperty 进行实现响应式,Vue 会先遍历一个数组或对象,对其的每一个属性设置监听变化,所以你后面添加进来的属性,是不会触发监听变化的,也就是说你改了这个值,页面上绑定了这个值的元素也不会更新。

但是这个问题在 Vue3.0 中已经解决了,源码中使用了 Proxy 代理,这个 API 是可以直接监听一整个数组或对象的变化。而 Object.defineProperty 只能监听数组或对象上面的属性变化。

目前在单文件组件形式测试过了,就算不是响应式也能够同步页面更新,不确定是否在 Vue2.0 新版本中解决了,欢迎复现的小伙伴一起讨论。

原文链接:菜园前端

http://www.yayakq.cn/news/846448/

相关文章:

  • 对网站域名销户怎么做wordpress父文章显示不全
  • 做网站推广销售产品网站icp备案费用
  • 烟台做网站多少钱网站建设技术的实现
  • 网站每个页面都有标题定西网站建设公司
  • 手机怎么做优惠券网站网站导航栏模板怎么做
  • 免费的网站开发平台上海短视频seo优化网站
  • 17做网站郑州开发软件的应用
  • 公司网站建设的目的建设网站要花多少钱
  • ui个人作品集网站虚拟主机可以干什么
  • 宿迁建设局网站深圳住房和建设局网站哪里预约
  • 网站商城例子下载菲律宾做网站好吗
  • 做网站需要板块知名的网络推广
  • 龙岗网站app建设泸州高端网站建设公司
  • 最稳定的免费的资源共享网站 中国人免费的片
  • 莒县建设局官方网站注册万网后网站怎么赚钱的
  • 青岛市崂山区建设局网站上海搜牛信息科技有限公司
  • 注册网站地址第1行第二行怎么填宾馆网站建设
  • 发布建设网站皮具网站建设服装网站
  • 企业网站推广名词解释大连模板建站平台
  • 建设公司网站有什么好处建筑工人招聘网站怎么做
  • 花都网站建设设计建筑设计专业的网站
  • 网站建设就是学淘宝吗仿 花瓣 wordpress
  • 建设双语的网站个人相册网站建设报告
  • 威县做网站哪儿便宜创业服务网站建设方案项目书
  • 建设厅官方网站北京设计logo怎么设计
  • 石家庄 网站编辑中文域名查询网站
  • 优秀的电商app设计网站体育西网站开发设计
  • 福田蒙派克6座做网站优化用什么软件
  • 建大型门户网站高明网站设计案例
  • 定西地网站建设网站开发时app打开很慢