来自 Web前端 2020-05-07 05:42 的文章
当前位置: 网上澳门金莎娱乐 > Web前端 > 正文

尤雨溪 2019 技术分享网上澳门金莎娱乐,Vue3 会做出哪些改变?内附官方学习资料

时间: 2019-08-29阅读: 414标签: 小程序

Vue 3.0 动态核心概述

新增特性

  • 提供函数式的写法(Vue 专属hooks写法),可以结合vue的一些特性,和react的hooks实现的观念差不多
  • flow移除,深度结合typescript
  • 核心依赖体积更小,虚拟DOM比较算法优化,数据拦截基于 Proxy 的变动侦测
  • 功能支持 tree-shaking

移除特性

  • 3.0 没有 class 风格,废弃(Class API 提案已撤销)

下面我们来看看 Vue.js 技术分享详情的细节吧。

Remax 是基于真正 React 的小程序构建工具,本文由 Ant Design 团队的 Mack 执笔,让我们跟随作者一起了解 Remax。

Vue.js 技术分享

网上澳门金莎娱乐 1

Vue.js 技术分享

为什么要用 React 来构建小程序

大纲

网上澳门金莎娱乐 2

大纲

  • Vue 团队和发展现状介绍
  • 设计思路及与其它框架的比较
  • 生态介绍和方案推荐
  • --- 午休 ---
  • 3.0 新特性、改动介绍
  • Vue 的培训和学习路线 & QA
Learn once, write anywhere.

团队 / 发展现状

网上澳门金莎娱乐 3

团队发展

因为 React 是我们最熟悉的技术。

发展现状

网上澳门金莎娱乐 4

发展现状

  • Chrome DevTools: 93.2万周活跃用户
  • 对比:React ~160万
  • npm 下载量:~400 万次/月
  • Jsdelivr CDN:5亿次引用/月
  • GitHub stars:13.6万
  • 全 GitHub 第三,实际代码项目第一

小程序糟糕的 API 设计已经有很多文章吐槽,这里就不再赘述了。再加上现在一大堆小程序平台,每个平台之间又有大大小小的差异,这对于有跨平台需求的小程序来说无异于是一场灾难。

全球化的影响力

网上澳门金莎娱乐 5

全球化的影响力

  • 遍布世界各地的线下聚会 https://events.vuejs.org/
  • 目前每年在世界各地举办的 Vue 主题会议:
  • VueConf 中国
  • Vue.js Amsterdam
  • VueConf US
  • Vue Fes Japan
  • VueConf Toronto
  • VueDay Italy
  • Vue Summit Brazil

React 的社区生态体系非常庞大,通过在小程序中引入 React 以及 React Hooks 提供的逻辑抽象能力,我们可以在小程序中直接利用 React 生态体系中大量的技术沉淀(比如:react-use、field-form)。

良好的反馈

网上澳门金莎娱乐 6

良好反馈

  • State of JavaScript 2018 调查
  • 前端框架满意度第一
  • StackOverflow 2019 年度调查
  • Most Loved Web Frameworks 第二

更完整的 TypeScript 支持。当然你也可以用 TypeScript 去写现有的小程序,但是由于小程序的架构原因,模板层跟逻辑层(也就是 Page)有天然的割裂,即使在逻辑层使用了 TypeScript,在模板层也无法享受类型检查和自动补全带来的便利。引入 React 后,我们的代码全部运行在逻辑层中,可以全程静态类型护航,给你满满的安全感。

使用公司遍布全球

网上澳门金莎娱乐 7

使用公司遍布全球

现有的方案

团队

网上澳门金莎娱乐 8

团队

  • 20 人的活跃核心团队,来自 世界各地,大部分日常工作与 Vue 相关
  • 独立运营,资金主要来源于赞 助商,三年来稳步增长
  • 国内有一位开发者通过 OpenCollective 资金全职维 护 CLI 及工具链

目前社区中使用 React 构建小程序的方案大都使用静态编译的方式实现。所谓静态编译,就是使用工具把代码语法分析一遍,把其中的 JSX 部分和逻辑部分抽取出来,分别生产小程序的模板和 Page 定义。

与其它框架的比较

网上澳门金莎娱乐 9

与其它框架的比较

这种方案最大的问题就是会有很多限制,因为语法分析是静态的,所以这些方案都会去限制一些动态的写法。另外正是因为 JavaScript 语言的动态性,要去做语法分析本身就是件很复杂的事情,所以这些方案实现起来往往也非常复杂。

到底是“框架”还是“库”?

网上澳门金莎娱乐 10

到底是框架还是库

最重要的,静态编译后的你的代码就转换成了小程序代码,运行时其实并没有 React 的存在,你只是用了 React 的写法, 而不是真正的在用 React 做应用。

“只是一个视图层库”

网上澳门金莎娱乐 11

只是一个视图层库

我们的方案

不 “只是一个视图层库” !

网上澳门金莎娱乐 12

并不是一个库

今年初的时候,@xcodebuild 向大家介绍了如何在小程序中使用 React with Hooks。这是一个非常创新的方案,我们在对这个方案做了完善,并且在线上小程序中得到验证后,正式发布了基于 React 的小程序开发框架:

“渐进式框架”

网上澳门金莎娱乐 13

渐进式框架

Remax 让你可以使用真正的 React 去构建小程序,你可以他理解成面向小程序的 React Native。

应用复杂度 vs. 框架复杂度

网上澳门金莎娱乐 14

复杂度对比

Remax 原理

框架功能

网上澳门金莎娱乐 15

框架功能

网上澳门金莎娱乐 16

发展史

网上澳门金莎娱乐 17

发展史

首先来看一下小程序的架构(支付宝和微信大同小异):

“JavaScript 疲劳”

网上澳门金莎娱乐 18

JavaScript Fatigue

正如上面提到的,小程序架构分为两层,你写的逻辑代码独立运行在一个进程中,每个页面会有自己独立的渲染进程(也就是一个 webview)用来渲染模板。而整个小程序又运行在 APP 容器中(也就是支付宝和微信本身)。逻辑层和视图层之间通过建立一个消息通道来通信。

渐进式框架 The Progressive Framework

网上澳门金莎娱乐 19

渐进式框架

网上澳门金莎娱乐 20

定义

网上澳门金莎娱乐 21

定义

再来看下 React 的架构:

对比 Angular

网上澳门金莎娱乐 22

对比 Angular

  • 更灵活的适应各种场景
  • 默认 API 适合纯前端背景的开发者 / 小快灵场景
  • 配合 TypeScript 也可以适合传统 Java 后端背景的开发者 / 大型项目
  • 更低的培训成本,更快的上手速度
  • 底层的 Virtual DOM 在高级场景下提供更多的灵活性
  • 大型应用中与 TypeScript 的整合不如 Angular
  • 3.0 中会针对性增强

最下面一层是 React 本身,上层的 ReactDOM 和 ReactNative 我们称之为「Renderer」。Renderer 跟 React 之间通过 ReactReconciler 连接把元素(也就是通常所说的「虚拟 DOM」)渲染到对应的平台上。而 Remax 就是一个我们实现的 Renderer,它把「虚拟 DOM」渲染到了小程序的视图层上。

对比 React

网上澳门金莎娱乐 23

对比 React

  • 对大部分常见场景都提供了事实标准方案
  • 不需要额外自行调研选取方案
  • 在必要情况下也可以 换用自研方案
  • 模版提供更友好的学习曲线
  • 同时暴露底层 Virtual DOM 用于高级场景
  • 大型应用中与 TypeScript 的整合暂时不如 React
  • 3.0 中会针对性增强,尤其是 TSX
  • 对标 React 16+
  • Vue 同样可以实现类似 Hooks 的逻辑复用机制
  • 3.0 支持时间分片

可以看到,我们把 React 和 ReactReconciler 运行在小程序的逻辑层中,并通过 Remax 把生成的「虚拟 DOM」渲染到视图层。从而做到了使用真正的 React 去构建小程序。

与其它所有框架的区别

网上澳门金莎娱乐 24

与其他所有框架的区别

  • 自带的响应式系统 (Reactivity System)
  • 类似于 MobX,但与框架本身的整合更无缝
  • 在复杂组件树中提供比 React 更精确的更新侦测
  • 3.0 将暴露更多底层响应式 API
  • 单文件组件 (Single File Components)
  • HTML 的自然延伸,符合直 觉的代码组织方式
  • 完善的工具链
  • 预处理器支持
  • Scoped CSS
  • webpack 热更新
  • IDE 支持 (VSCode + Vetur)
  • Linter 支持 (eslint-plugin-vue)

最后

React 的组件更新触发

网上澳门金莎娱乐 25

React 的组件更新触发

正如第一段中提到的,把 React 运行在小程序中可以带来非常大的想象力。小程序本身可以说是一种创新,它把应用分为两层来提高视图层的渲染速度,但是微信从一开始就选择使用私有且落后(起码目前看来是落后的)的技术方案来定义小程序,而后面的追随者为了吸引开发者亦使用了跟微信小程序类似的设计。Remax 希望能打破这个局面,通过开放的生态为开发者带来全新的小程序开发体验。

Vue 的组件更新触发

网上澳门金莎娱乐 26

Vue 的组件更新触发

本文由网上澳门金莎娱乐发布于Web前端,转载请注明出处:尤雨溪 2019 技术分享网上澳门金莎娱乐,Vue3 会做出哪些改变?内附官方学习资料

关键词: