人生天地之间,若白驹之过隙,忽然而已

提出问题

在观看vue官网当中,在深入响应式系统出现一段话:

Vue 最标志性的功能就是其低侵入性的响应式系统。组件状态都是由响应式的 JavaScript 对象组成的。当更改它们时,视图会随即自动更新。这让状态管理更加简单直观,但理解它是如何工作的也是很重要的,这可以帮助我们避免一些常见的陷阱。在本节中,我们将深入研究 Vue 响应性系统的一些底层细节。

那什么叫低侵入式的响应式系统?

响应式系统

在此之前要知道什么叫响应式系统:

响应式系统是一种使自动使数据源(模型)与数据表示(视图)层自动保持同步的机制。每次模型更改时,都会重新渲染视图。

响应式系统的目标是灵敏度高,系统稳健一直有回复,松耦合和可扩展。我们定义响应式系统的4个显著特点:能灵敏响应请求的(Responsive),能回复的(Resilient),可伸缩扩展的(Elastic),基于消息驱动的(Message Driven)。

在vue官网解释中:

Vue 2 使用 getter / setters 完全是出于支持旧版本浏览器的限制。而在 Vue 3 中则使用了 Proxy 来创建响应式对象,仅将 getter / setter 用于 ref。下面的伪代码将会说明它们是如何工作的:

function reactive(obj) {return new Proxy(obj, {get(target, key) {track(target, key)return target[key]},set(target, key, value) {target[key] = valuetrigger(target, key)}})
}function ref(value) {const refObject = {get value() {track(refObject, 'value')return value},set value(newValue) {value = newValuetrigger(refObject, 'value')}}return refObject
}

侵入式

而侵入性:是指强迫你使用新的语法、数据类型。比如a2=a1+a0,为了实现 MVVM 的效果,你需要创建各种 Model、View 实例,表面上你是在写 JS,实际上你是在写基于那个库的 API 的某种方言(似曾相识:你以为你在写 JS,其实你写的是 jQuery)。

反观 Vue,你只是在给某个对象的某个属性赋值而已,用以实现 MVVM 的逻辑并没有体现在你书写的代码上。这就是低侵入式。

Vue官网所说的低侵入式含义相关推荐

  1. 重磅:Vue 官网竟然有免费的中文视频教程了

    loonggg 读完需要 2 分钟 速读仅需1分钟 关注我很久的读者应该都知道,这两年我一直在创业,当然了,作为程序员创业来讲,其实有时候真的不得不自己去干很多活.虽然我是移动端开发出身,但是这两年其 ...

  2. Vue 官网学习笔记

    VUE介绍 vue git 地址:https://github.com/vuejs/vue/projects Vue 官网教程地址:https://cn.vuejs.org/v2/guide/inst ...

  3. 控制台启动jar包关闭控制台怎么关java程序_Jpom一款简而轻的低侵入式Java运维、监控软件...

    你为什么需要Jpom SpringBoot.Jboot等框架开发的项目通常是以Jar的方式在后台运行的,如果只有一两个项目,管理起来不是太麻烦,但是当项目多了以后,管理起来就不是那么方便了,当项目出现 ...

  4. Vue官网提供表单验证cnpm i vee-validate@2 --save

    Vue官网提供表单验证 使用步骤: 1:安装vee-valadite,别安装最新版本@2 2:在plugins文件夹中创建一个validate.js[专门注册vee-valadite] 3:注册插件 ...

  5. 003-读书笔记-Vue官网 计算属性与监听器

    1.计算属性 1-1 计算属性概述 计算属性也是 Vue 实例的属性,和 data 方法中返回的对象中的属性是等同的存在.通常来说,计算属性可以简单理解: 计算属性其实就是 Vue 实例的一个属性 计 ...

  6. Vue官网todoMVC示例

    这个示例是模仿官网示例样式和功能用我自己的方式写的,基本上没有看官网的源码,只参考自定义指令.让我们一步步来探讨一下.官网demo 要实现的功能 单条添加todo 单条删除todo 双击编辑todo ...

  7. Vue官网2文档笔记

    文章目录 $event $on Class 与 Style 绑定 对象语法 列表渲染 v-for 中使用对象 事件处理 事件修饰符 插槽 具名插槽 解构插槽 prop 动态组件&异步组件 访问 ...

  8. java企业官网源码 自适应响应式 freemarker 静态引擎 SSM 框架

    前台:支持(5+3[时尚单页风格])八套模版,可以在后台切换 业务模块(首页管理) 1.   网站信息:维护网站基本信息,比如标题.描述.关键词.联系方式.地址等 2.   业务说明:网站首页文字业务 ...

  9. 【VUE】vue网站设计-----vue官网设计

    1.引言 设计结课作业,课程设计无处下手,网页要求的总数量太多?没有合适的模板?数据库,java,python,vue,html作业复杂工程量过大?毕设毫无头绪等等一系列问题.你想要解决的问题,在微信 ...

最新文章

  1. linux netstat端口占用,Linux系统使用 netstat 查看和检查系统端口占用情况
  2. 5、MySQL热备份及恢复
  3. Java读取word文件,字体,颜色
  4. maven配置junit5_JUnit 5和Selenium –改善项目配置
  5. matlab上机实验1,上机实验1:熟悉matlab基本操作
  6. Spring中使用XML方式导入Spring配置文件,Boot中使用全注解导入Spring配置
  7. 计算机片段教学优秀教案,精彩教学片段100例—导入篇(1)
  8. Android系统常用的权限
  9. 【Elasticsearch】Elasticsearch性能调优
  10. 《信息系统设计与分析》读书笔记
  11. a超链接锚点的设置和应用 三国演义
  12. 结构化、半结构化、非结构化数据
  13. Android 软键盘顶起布局相关
  14. JavaSE-接口简单介绍
  15. Python图像处理应用之绘制log函数图像
  16. { }大括号和[ ]中括号的用法
  17. 大整数的加法和乘法运算
  18. macOS 与 iOS 中的 Tagged Pointer
  19. 域服务器统一修改ie首页,通过AD域策略对IE做统一设定
  20. H.265流媒体播放器EasyPlayer.js集成时页面报错出现“X”,该如何解决?

热门文章

  1. 做好培训或是展示PPT的几大原则
  2. SM2椭圆曲线公钥密码算法(Python实现)
  3. 【CSDN软件工程师能力认证学习精选】机器学习之决策树(Decision Tree)及其Python代码实现
  4. 【计算机毕业设计】java基于ssm校园快递代领系统
  5. 计算机操作系统——学习笔记(下)
  6. 微博数据库设计 _转
  7. 企业开发的困境与变局
  8. python绘制图形微格课_什么是微格教学-海天清泓                          -51CTO博客...
  9. Python第三方库tabulate简单使用说明
  10. python自定义html_Python 第十二篇:HTML基础