vue3中使用jsx
什么是 jsx
jsx
是JavaScript
的一个类似XML
的扩展, 可以使用js
的语法编写 HTML 的结构,并使用babel
的编译工具进行转译,转换成常规的js
实现后续的渲染
jsx 和 template 如何选择
jsx
可以支持更动态的需求。而template
则因为语法限制原因,不能够像jsx
那样可以支持更动态的需求。这是jsx
相比于template
的一个优势。template 牺牲灵活性换来了静态标记的收益:
就是重复执行render
的时候,比如,代码里的h1
这个纯静态的标签,就不需要进行额外地计算,并且静态标签在虚拟DOM
计算的时候,会直接越过Diff
过程,这也是 Vue 3 的虚拟DOM
能够比 Vue 2 快的一个重要原因。我们实现业务需求的时候,也是优先使用
template
,动态性要求较高的组件使用jsx
实现jsx
与template
渲染 20000 个dom
template
性能方面快点jsx
初始化的时候快点
准备工作
vue-cli
工程项目默认支持jsx
,无需额外配置- 基于
vite2.x
使用jsx
- 安装
pnpm install @vitejs/plugin-vue-jsx
vite.config.js
配置如下1
2
3
4
5
6
7
8
9
10
11
12import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
const resolve = dir=>path.join(__dirname,dir);
export default ({mode})=>{
return defineConfig({
...
plugins:[
vueJsx(),
]
})
}- tsconfig.json 配置如下
1
2
3
4
5
6{
"compilerOptions":{
...
"jsx":"preserve"
}
}
- 安装
jsx 写法
1 | import { defineComponent, ref } from 'vue' |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 秋簌前端!