Vue3 超前版发布三个新特性!有望全面拥抱 JSX/TSX!

开发
最近,Vue3 的超前项目 Vue Macros 中,发布了 defineRender、setupComponent、setupSFC 这些新的 API,这代表了,以后 Vue3 有可能可以全面拥抱 JSX/TSX 了!!

拥抱 JSX/TSX?

我们都知道 Vue 一直主流是使用 template 模板来进行页面的编写。而就在最近,Vue3 的超前项目 Vue Macros 中,发布了 defineRender、setupComponent、setupSFC 这些新的 API,这代表了,以后 Vue3 有可能可以全面拥抱 JSX/TSX 了!!

说这个新 API 之前,我们先来说说什么是 Vue Macros。

Vue Macros

Vue Macros 是由 Vue 团队成员维护的一个 超前版 Vue。

许多 Vue3 的新 API 都是在这个项目中孵化出来的,比如 Vue3.4 的:

  • defineOptions
  • defineModel

所以从 Vue Macros 这个项目,也可以预见到 Vue3 未来可能会发布的新 API 和新特性。

Vue Macros 中很多功能都是超前功能,在 Vue3 正式版中并没有这些功能,如果想要体验这些超前功能,需要安装对应的插件:

npm i -D unplugin-vue-macros

并在 vite.config.ts 中配置这个插件:

回顾 Vue3 现有渲染方式

1.template

我们在开发 Vue 时,在很多情况下,都会使用 template 来编写页面:

2.h 函数

但是在编写一些比较灵活且基础的组件(比如组件库)时,使用 template 来编写比较费劲,所以有些时候也会使用 h 函数来编写

但是可以看到,虽然 h 函数更加贴近 JavaScript,更加灵活,但是当层级太多时,写起来也是非常的不方便~

3.@vitejs/plugin-vue-jsx

所以 Vue3 在之前推出了 @vitejs/plugin-vue-jsx 这个插件,目的就是为了开发者能在 Vue3 项目中去使用 JSX/TSX

pnpm i @vitejs/plugin-vue-jsx

拥抱 JSX/TSX!!!

1.defineRender

defineRender 是 Vue 超前项目 Vue Macros 中推出的一个新的 API,它很有大可能会在未来的 Vue3 正式版中推出。

我们可以通过安装 Vue Macros 的插件来体验这一超前功能:

2.setupComponent

setupComponent 让 Vue3 越来越像 React 了!!!在超前项目中,推出了 defineSetupComponent 这个 API ,让你可以使用 JSX 去编写一个组件

3.setupSFC

setupSFC 的模式下,无需在包裹 defineSetupComponent 这个函数了,甚至可以直接写在 tsx 文件中,来编写一个 SFC

责任编辑:赵宁宁 来源: 前端之神
相关推荐

2022-11-01 11:55:27

ReactVue3

2022-07-14 08:22:48

Computedvue3

2024-02-02 08:33:00

Vue模板性能

2021-05-12 10:25:29

开发技能代码

2012-09-03 16:31:34

Firefox 15浏览器

2013-06-30 09:51:54

SpringWeb服务器

2021-05-12 10:25:53

组件验证漏洞

2021-11-17 10:38:22

边缘计算云端

2014-12-10 09:53:43

Java 9

2017-03-13 15:27:55

CSS新特性

2021-08-11 08:31:42

前端技术Vue3

2022-06-30 11:36:10

KubeSphereGitOpsLinux

2020-08-31 08:11:01

V8 8.5Promise前端

2009-03-17 08:29:20

微软Windows 7RC版

2021-12-01 08:11:44

Vue3 插件Vue应用

2021-11-30 08:19:43

Vue3 插件Vue应用

2023-11-28 09:03:59

Vue.jsJavaScript

2015-07-17 13:45:12

MySQL 5.7

2021-07-16 23:35:43

Windows 10Windows微软

2021-04-22 07:49:51

Vue3Vue2.xVue3.x
点赞
收藏

51CTO技术栈公众号