2020年,需要了解 Vue3 的哪些知识
作者:Matt Maribojoc
译者:前端小智
来源:medium
点赞再看,微信搜索 【大迁世界】 关注这个没有大厂背景,但有着一股向上积极心态人。本文
GitHub
https://github.com/qq449245884/xiaozhi 上已经收录,文章的已分类,也整理了很多我的文档,和教程资料。
前端开发工程师必读书籍有哪些值得推荐?
Vue 是目前前沿开发中最热门的框架之一,到2019年每周的下载率翻了一番。2020 年初 Vue3的发布还会增加它的受欢迎程度。
Vue3 为开发人员提供了更多的控制,它使我们能够精确地控制项目中发生的事情,从编写定制的编译和渲染方法到直 Vue reactivity API。
Vue3 使用 Proxy 来监听数据的变化
响应性是 VueJS 的核心,数据必须具有依赖性,可以观察并进行更新以响应任何更改,Vue2 使用 Object.defineProperty 创建 getter
和 setter
来实现响应式。
使用Object.defineProperty
有两个主要问题,在官方文档中都提到过:Vue 不能检测数组和对象的变化。
对于对象
Vue 无法检测 property
的添加或移除。由于 Vue 会在初始化实例时对 property
执行 getter/setter
转化,所以 property
必须在 data
对象上存在才能让 Vue 将它转换为响应式的。
对于数组
Vue 不能检测以下数组的变动:
- 当你利用索引直接设置一个数组项时,例如:vm.items[indexOfItem] = newValue
- 当你修改数组的长度时,例如:vm.items.length = newLength
举个例子:
var vm = new Vue({data: {items: ['a', 'b', 'c']}
})
vm.items[1] = 'x' // 不是响应性的
vm.items.length = 2 // 不是响应性的
为什么使用 Proxy ?
Vue3 的解决方案是使用基于Proxy
的观察者模式来解决 Vue2 响应上的一些限制。
新旧系统之间的主要区别在于,在Vue2中,Object.defineProperty
会修改原始数据,而Proxy
则不会,Proxy
虚拟化目标数据并设置不同的处理程序(称为target
),这些处理程序通过getters
和setter
拦截数据。
Vue3 意味着我们无需使用vm.$set
来让数据动态的响应,同时也解决 vue2 操作数组无法响应的问题。
正如尤雨溪大哥所总结的那样,基于代理可以支持:
- 检测属性
添加/删除
- 检测数组
index/length
的变化 - 支持
Map
,Set
,WeakMap
和WeakSet
Composition API
这是到目前为止 Vue3 最大的一个变化,它有助于代码的组织和重用性。
目前,在Vue中我们使用是Options API
。 Options API
按属性组织代码:data
,computed
,methods
等。
这是一个非常直观的方式,但维护一些复杂组件变得非常困难。 单个功能的代码通常在相隔数百行的多个地方抛出。
可维护性和可读性成为主要问题。
接着,我们快速了解一下Composition API的工作原理。
import { reactive, computed } from 'vue'export default {setup() {let state = reactive({input: '',groceries: [],groceriesLeft: computed(() => { groceries.length })})function addGrocery() {state.groceries.push(state.input)state.input = ''}function deleteGrocery(index) {state.groceries.splice(index, 1);}return { state, addGrocery, deleteGrocery }}
}
我们来分析一下,上面的过程
2020年,需要了解 Vue3 的哪些知识相关推荐
- 军队文职初试资料 计算机,2020军队文职备考,计算机基础知识!
2020军队文职备考,计算机基础知识!由军转干考试试题资料栏目提供,更多关于2020军队文职,军队文职计算机基础知识,军转干考试试题资料的内容,请关注军转干考试网/河北人事考试网! 在军队文职考试中, ...
- Vite+Vue3+TypeScript基础知识案例
Vite+Vue3+TypeScript基础知识案例<一> 1.学习背景 随着前端web应用的需求不断发展和变化,vue生态圈也紧跟开发者步伐,不断演化.尽管vue2.0已经很完善了,很多 ...
- 在“内卷”、“红海”的2020 年,开垦计算机视觉领域的知识荒原:BatchNorm
作者丨纵横@知乎 来源丨https://zhuanlan.zhihu.com/p/166101119 2020 年已经要迎来了第二学期,内卷.红海.赛马似乎仍是 CV 领域的主旋律.不考虑 ddl 的 ...
- 2020下半年中小学教资考试教育知识与能力试题(中学)——主观题
二.辨析题(本大题共4小题,每小题8分,共32分)判断正误,并说明理由. 22.母猴带着小猴爬树也是教育. 这种说法是错误的.母猴带着小猴爬树不是教育,只是动物的本能活动. 教育是一种有目的地培养人的 ...
- 2020年8月10日31---Html知识介绍
''' ================================== cooding:utf-8 @Time :2020/8/11 21:09 @Author :henry @Email :y ...
- 全国计算机二级公共基础知识练习,2020年全国计算机二级公共基础知识练习题(7)...
1[单选题] 下列链表中,其逻辑结构属于非线性结构的是 A.二叉链表B.循环链表C.双向链表D.带链的栈 参考答案:A 参考解析:在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为 ...
- 计算机二级公共基础知识2020版电子版,2020年计算机二级考试公共基础知识背诵笔记...
数据结构与算法 1 算法 算法:是指解题方案的准确而完整的描述. 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计. 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效 ...
- 2020年中国面向人工智能“新基建”的知识图谱行业白皮书
全文共计1379字,预计阅读时间8分钟 来源 | 艾瑞咨询(经授权转载) 编辑 | 蒲蒲 日前,认知智能国家重点实验室&艾瑞咨询联合发布<2020年面向人工智能"新基建&quo ...
- 2020年下系统集成项目管理工程师真题基础知识+解析3/3
2020年:系统集成项目管理工程师基础知识,共75题真题,本试题解析分三篇文章,本篇为第三篇 46.在缩短工期时,不正确措施是( ) A.赶工,投入更多的资源成本,增加工作时间 B.降低质控要求,减少 ...
最新文章
- Gartner对于建设「数据中台」的建议
- matlab中一组数取百分位数_GRE数学难题-正态分布+百分位数
- NSMutableArray 记住取不到时要进行强转
- 利用 Spring MVC 上传多文件到指定目录 spring upload files
- VTK:Medical之MedicalDemo1
- 【OpenCV 例程200篇】19. 图像的圆形遮罩
- 微机笔记——1.微型计算机概述
- Metropolis 采样与蒙特卡洛算法
- 2019icpc南京网络赛 A The beautiful values of the palace(离线+树状数组)
- 2100 没有反弹shell_反弹shell | ncbash
- python艺术签名_用 Python 制作一个艺术签名小工具,给自己设计一个优雅的签名...
- onkeyup+onafterpaste 限制文本框只能输入数字 在thinkPHP框架中某些不触发的现象
- 如何设置IE为默认浏览器?如何设置谷歌chrome为默认浏览器?
- 音频的相关基础知识,这里有
- 激荡的2020过后,物流江湖下个十年谁主沉浮?
- R pdf大小_免费、开源、多平台支持的PDF文档处理软件 PDFsam Basic
- HOUDINI 平面漩涡
- Arcengine IElement 的节点编辑
- 【兴趣书签】类似《看不见的客人》的惊悚电影推荐
- 软件过程和项目管理(CMMI配置管理)
热门文章
- Java基础361问第4问——List如何遍历删除指定元素
- web项目接入支付宝开发(超详细)
- 管理联考数学-“穿针引线法”解高次不等式
- linux kill()函数,linux kill函数
- 2012 r2 php mysql_Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程
- 牛仔纯儿牛仔加盟怎么样?纯儿骗子?纯儿牛仔裤加盟骗子
- CreateCompatibleDC用法
- 计算机系统 流水线技术
- CmsEasy_v5.7 代码执行漏洞复现
- 高中小高考考计算机么,【高二】到底要不要参加小高考?报名前先搞清楚这些问题!...