作者:Matt Maribojoc
译者:前端小智
来源:medium

点赞再看,微信搜索 【大迁世界】 关注这个没有大厂背景,但有着一股向上积极心态人。本文 GitHub https://github.com/qq449245884/xiaozhi 上已经收录,文章的已分类,也整理了很多我的文档,和教程资料。

前端开发工程师必读书籍有哪些值得推荐?

Vue 是目前前沿开发中最热门的框架之一,到2019年每周的下载率翻了一番。2020 年初 Vue3的发布还会增加它的受欢迎程度。

Vue3 为开发人员提供了更多的控制,它使我们能够精确地控制项目中发生的事情,从编写定制的编译和渲染方法到直 Vue reactivity API。

Vue3 使用 Proxy 来监听数据的变化

响应性是 VueJS 的核心,数据必须具有依赖性,可以观察并进行更新以响应任何更改,Vue2 使用 Object.defineProperty 创建 gettersetter 来实现响应式。

使用Object.defineProperty有两个主要问题,在官方文档中都提到过:Vue 不能检测数组和对象的变化。

对于对象

Vue 无法检测 property 的添加或移除。由于 Vue 会在初始化实例时对 property 执行 getter/setter 转化,所以 property 必须在 data 对象上存在才能让 Vue 将它转换为响应式的。

对于数组

Vue 不能检测以下数组的变动:

  1. 当你利用索引直接设置一个数组项时,例如:vm.items[indexOfItem] = newValue
  2. 当你修改数组的长度时,例如: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),这些处理程序通过getterssetter拦截数据。

Vue3 意味着我们无需使用vm.$set来让数据动态的响应,同时也解决 vue2 操作数组无法响应的问题。

正如尤雨溪大哥所总结的那样,基于代理可以支持:

  • 检测属性 添加/删除
  • 检测数组 index/length 的变化
  • 支持MapSet, WeakMapWeakSet

Composition API

这是到目前为止 Vue3 最大的一个变化,它有助于代码的组织和重用性。

目前,在Vue中我们使用是Options APIOptions API按属性组织代码:datacomputedmethods等。

这是一个非常直观的方式,但维护一些复杂组件变得非常困难。 单个功能的代码通常在相隔数百行的多个地方抛出。

可维护性和可读性成为主要问题。

接着,我们快速了解一下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 的哪些知识相关推荐

  1. 军队文职初试资料 计算机,2020军队文职备考,计算机基础知识!

    2020军队文职备考,计算机基础知识!由军转干考试试题资料栏目提供,更多关于2020军队文职,军队文职计算机基础知识,军转干考试试题资料的内容,请关注军转干考试网/河北人事考试网! 在军队文职考试中, ...

  2. Vite+Vue3+TypeScript基础知识案例

    Vite+Vue3+TypeScript基础知识案例<一> 1.学习背景 随着前端web应用的需求不断发展和变化,vue生态圈也紧跟开发者步伐,不断演化.尽管vue2.0已经很完善了,很多 ...

  3. 在“内卷”、“红海”的2020 年,开垦计算机视觉领域的知识荒原:BatchNorm

    作者丨纵横@知乎 来源丨https://zhuanlan.zhihu.com/p/166101119 2020 年已经要迎来了第二学期,内卷.红海.赛马似乎仍是 CV 领域的主旋律.不考虑 ddl 的 ...

  4. 2020下半年中小学教资考试教育知识与能力试题(中学)——主观题

    二.辨析题(本大题共4小题,每小题8分,共32分)判断正误,并说明理由. 22.母猴带着小猴爬树也是教育. 这种说法是错误的.母猴带着小猴爬树不是教育,只是动物的本能活动. 教育是一种有目的地培养人的 ...

  5. 2020年8月10日31---Html知识介绍

    ''' ================================== cooding:utf-8 @Time :2020/8/11 21:09 @Author :henry @Email :y ...

  6. 全国计算机二级公共基础知识练习,2020年全国计算机二级公共基础知识练习题(7)...

    1[单选题] 下列链表中,其逻辑结构属于非线性结构的是 A.二叉链表B.循环链表C.双向链表D.带链的栈 参考答案:A 参考解析:在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为 ...

  7. 计算机二级公共基础知识2020版电子版,2020年计算机二级考试公共基础知识背诵笔记...

    数据结构与算法 1 算法 算法:是指解题方案的准确而完整的描述. 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计. 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效 ...

  8. 2020年中国面向人工智能“新基建”的知识图谱行业白皮书

    全文共计1379字,预计阅读时间8分钟 来源 | 艾瑞咨询(经授权转载) 编辑 | 蒲蒲 日前,认知智能国家重点实验室&艾瑞咨询联合发布<2020年面向人工智能"新基建&quo ...

  9. 2020年下系统集成项目管理工程师真题基础知识+解析3/3

    2020年:系统集成项目管理工程师基础知识,共75题真题,本试题解析分三篇文章,本篇为第三篇 46.在缩短工期时,不正确措施是( ) A.赶工,投入更多的资源成本,增加工作时间 B.降低质控要求,减少 ...

最新文章

  1. Gartner对于建设「数据中台」的建议
  2. matlab中一组数取百分位数_GRE数学难题-正态分布+百分位数
  3. NSMutableArray 记住取不到时要进行强转
  4. 利用 Spring MVC 上传多文件到指定目录 spring upload files
  5. VTK:Medical之MedicalDemo1
  6. 【OpenCV 例程200篇】19. 图像的圆形遮罩
  7. 微机笔记——1.微型计算机概述
  8. Metropolis 采样与蒙特卡洛算法
  9. 2019icpc南京网络赛 A The beautiful values of the palace(离线+树状数组)
  10. 2100 没有反弹shell_反弹shell | ncbash
  11. python艺术签名_用 Python 制作一个艺术签名小工具,给自己设计一个优雅的签名...
  12. onkeyup+onafterpaste 限制文本框只能输入数字 在thinkPHP框架中某些不触发的现象
  13. 如何设置IE为默认浏览器?如何设置谷歌chrome为默认浏览器?
  14. 音频的相关基础知识,这里有
  15. 激荡的2020过后,物流江湖下个十年谁主沉浮?
  16. R pdf大小_免费、开源、多平台支持的PDF文档处理软件 PDFsam Basic
  17. HOUDINI 平面漩涡
  18. Arcengine IElement 的节点编辑
  19. 【兴趣书签】类似《看不见的客人》的惊悚电影推荐
  20. 软件过程和项目管理(CMMI配置管理)

热门文章

  1. Java基础361问第4问——List如何遍历删除指定元素
  2. web项目接入支付宝开发(超详细)
  3. 管理联考数学-“穿针引线法”解高次不等式
  4. linux kill()函数,linux kill函数
  5. 2012 r2 php mysql_Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程
  6. 牛仔纯儿牛仔加盟怎么样?纯儿骗子?纯儿牛仔裤加盟骗子
  7. CreateCompatibleDC用法
  8. 计算机系统 流水线技术
  9. CmsEasy_v5.7 代码执行漏洞复现
  10. 高中小高考考计算机么,【高二】到底要不要参加小高考?报名前先搞清楚这些问题!...