vue低层_【译PPT/必读】尤雨溪:Vue 3.0的设计原则

2023-10-08 00:40

本文主要是介绍vue低层_【译PPT/必读】尤雨溪:Vue 3.0的设计原则,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

2019年11月11号在Vue Toronto 2019会议上,@尤雨溪做了关于《Design Principles of Vue 3.0》的分享。

本PPT作者@尤雨溪,翻译作者:黑叔666。

(注:由于黑叔英语基础薄弱,若有任何更好的翻译,可评论区留言噢!)

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:VUE 3.0 的设计原则

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:快速状态更新

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:全世界每周有100万活跃用户!

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:NPM每周下载:超过去年的100%以上

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:路易威登使用的是Vue和Nuxt技术

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:Vue设计面临的挑战

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:VUE有非常多样化的用户

刚刚从HTML和CSS有了进展的初学者

从JQuery框架的转过来的专业人员

从另一个框架转过来的搬砖老兵

后端工程师寻找轻量级的前端解决方案

架构师为整个组织选择基础

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:VUE有非常多样化的使用场景

将交互性结合到遗留的应用程序上

一次性项目需要快速周转,但不需要长期团队维护

可预测复杂度的中型项目

大型项目预计将持续数年,团队运动

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:设计包括解决权衡问题

为简单性而优化的API会导致大规模的可维护性问题

重型工具增加了进入壁垒并限制了用例

更多的功能会导致更多的臃肿

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:框架必须在多个维度上进行考虑

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:可接近性 VS 可扩展性

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:CDN构建 VS Vue脚手架

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:选项API和合成API

为什么要介绍另一种方式

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:选项API

直观易用

大规模应用程序中的可扩展性问题

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:合成API

纯添加剂

可与选项API一起使用

提供更灵活的代码组织和逻辑重用功能

提供出色的typescript支持

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:TypeScript vs JavaScript

TypeScript真的是有必要吗?

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:为什么TypeScript:

Pro:优秀的IDE支持自动补全和类型信息

Pro:重构大型项目中旧代码的信心

Cons:学习成本

Cons:初期发展缓慢

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:In vue 3

TS定义对JS用户也有好处

使用TS和JS的组件代码看起来基本相同

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:模板 VS JSX:

为什么要提供两种?

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:作为一个包容的框架意味着去迎合不同背景的用户

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:另外,模板允许我们获得更好的性能

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:尽管Vue可以确保组件树级别的更新最少,但它仍然是每个组件实例中的完全diff。

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:传统虚拟DOM的瓶颈

传统VDOM的性能取决于模板的总大小,而不是模板中动态内容的数量

AAffA0nNPuCLAAAAAElFTkSuQmCC

完全动态渲染逻辑使得很难对用户意图进行安全的最大AOT优化假设。

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:语法约束促使更好的优化

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:让我们开始一个最简单的例子

完全没有节点结构更改

只有一个动态节点

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:节点结构改变:v-if

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:节点结构改变:v-if

外面的v-if:v-if是唯一的动态节点

里面的v-if:{{message}}是唯一的动态节点

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:节点结构改变:v-for

外面的v-for:v-for是唯一的动态节点(作为碎片)

里面的每一个v-for迭代:{{item.message}}是唯一的动态节点

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:这是一棵大树

基于结构指令划分为“块”的模板

在每个块中,节点结构是完全静态的

每个块只需要一个扁平的数组来跟踪动态节点

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:使用新策略,更新性能是动态内容的数量而不是总模板大小决定

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:更新性能基准

v-for有1000次迭代

在每次迭代中,12个DOM元素嵌套3层深,2个动态类绑定,1个动态文本插值,1个动态id属性绑定

更新所有动态绑定,平均运行100次

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:Power vs Size

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:Vue2的困境:

每个新特性都会增加每个用户的包大小

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:在Vue 3中

大多数全局api和内部帮助程序作为ES模块导出被提供(可摇动的树)

编译器也为模板生成树可更改代码

不要为你从未使用过的功能付费

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:框架一致性与低层韧性

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:

库 vs 框架

原始 vs 抽象

集市 vs 大教堂

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:小范围问题

开始使用的概念更少

更多的灵活性和更多的用户机会->活跃生态系统

较小的维护面-> 团队可以专注于探索新的想法

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:小范围关注

在用简单的概念解决固有的复杂问题时需要更多的管道工程

随着时间的推移,模式自然会出现,并成为半必需的知识,但通常没有正式的文档记录

生态系统移动过快会导致分裂和持续的变动

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:大范围问题

最常见的问题可以通过内置的抽象来解决

集中的设计过程确保了一致和连贯的生态系统

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:大范围关注

更高的前期学习障碍

不灵活的内置解决方案不适合用例

更大的维护面使引入基本的新思想更加尖

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:进步的地方

分层设计,允许以渐进的方式选择功能

低入门学习障碍

常见问题的文档解决方案

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

译文:在Vue 3中

与vue 2相同的连贯体验

router,Vuex&test-utils将收到相应的更新以符合此愿景

甚至更低层次的灵活性

一流的自定义渲染器和定制的编译器api

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

关于译者

『前端进阶周刊』- 黑叔666

这篇关于vue低层_【译PPT/必读】尤雨溪:Vue 3.0的设计原则的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/weixin_39622521/article/details/113006378
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/161525

相关文章

C#继承之里氏替换原则分析

《C#继承之里氏替换原则分析》:本文主要介绍C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#里氏替换原则一.概念二.语法表现三.类型检查与转换总结C#里氏替换原则一.概念里氏替换原则是面向对象设计的基本原则之一:核心思想:所有引py

使用Vue-ECharts实现数据可视化图表功能

《使用Vue-ECharts实现数据可视化图表功能》在前端开发中,经常会遇到需要展示数据可视化的需求,比如柱状图、折线图、饼图等,这类需求不仅要求我们准确地将数据呈现出来,还需要兼顾美观与交互体验,所... 目录前言为什么选择 vue-ECharts?1. 基于 ECharts,功能强大2. 更符合 Vue

Vue中插槽slot的使用示例详解

《Vue中插槽slot的使用示例详解》:本文主要介绍Vue中插槽slot的使用示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、插槽是什么二、插槽分类2.1 匿名插槽2.2 具名插槽2.3 作用域插槽三、插槽的基本使用3.1 匿名插槽

springboot+vue项目怎么解决跨域问题详解

《springboot+vue项目怎么解决跨域问题详解》:本文主要介绍springboot+vue项目怎么解决跨域问题的相关资料,包括前端代理、后端全局配置CORS、注解配置和Nginx反向代理,... 目录1. 前端代理(开发环境推荐)2. 后端全局配置 CORS(生产环境推荐)3. 后端注解配置(按接口

Vue 2 项目中配置 Tailwind CSS 和 Font Awesome 的最佳实践举例

《Vue2项目中配置TailwindCSS和FontAwesome的最佳实践举例》:本文主要介绍Vue2项目中配置TailwindCSS和FontAwesome的最... 目录vue 2 项目中配置 Tailwind css 和 Font Awesome 的最佳实践一、Tailwind CSS 配置1. 安

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

Vuex Actions多参数传递的解决方案

《VuexActions多参数传递的解决方案》在Vuex中,actions的设计默认只支持单个参数传递,这有时会限制我们的使用场景,下面我将详细介绍几种处理多参数传递的解决方案,从基础到高级,... 目录一、对象封装法(推荐)二、参数解构法三、柯里化函数法四、Payload 工厂函数五、TypeScript