Vue3使用JSX/TSX

文章目录

  • [1. 什么是 JSX & TSX?](#1. 什么是 JSX & TSX?)
    • [JSX(JavaScript XML)](#JSX(JavaScript XML))
    • [TSX(TypeScript XML)](#TSX(TypeScript XML))
  • [2.Vue3 中使用 TSX](#2.Vue3 中使用 TSX)
    • [基本渲染 & 响应式 & 事件](#基本渲染 & 响应式 & 事件)
  • [3.JSX 和 template 哪个好呢?](#3.JSX 和 template 哪个好呢?)

1. 什么是 JSX & TSX?

提示:JSX & TSX

  • JSX是Facebook专门为react发明的一种新的类似于XML格式的语言,它 是JavaScipt的语法拓展。
  • 它使用XML标记的方式去直接声明界面,然后再利用编译器转换成JS语言。但是Vue 早就能使用 JSX 去编写页面了~
  • 并且现在大部分都是使用 Typescript 来写项目,所以 TSX 会用的更多

JSX(JavaScript XML)

  • JSX是一种JavaScript的语法扩展,它允许在JavaScript代码中编写类似于XML或HTML的结构。
  • JSX使得在React中编写UI组件更加直观和易于理解,它可以帮助开发人员将UI的结构和逻辑更清晰地表达出来。
  • 在JSX中,可以直接在JavaScript代码中使用类似HTML的标签来描述UI组件的结构,并且可以在标签中嵌入JavaScript表达式,以动态地生成UI内容。

TSX(TypeScript XML)

  • TSX是JSX的TypeScript版本,它提供了与JSX相同的功能,并添加了对类型的支持。
  • TypeScript是JavaScript的一个超集,它引入了静态类型检查,使得代码更具可维护性和安全性。
  • 在TSX中,可以像在JSX中一样编写UI组件,并且可以利用TypeScript的类型系统来提供更好的代码提示、错误检查和重构支持。

2.Vue3 中使用 TSX

我是使用了 Vue3 + Vite + TS 的项目,想要在项目中使用 TSX ,需要安装一个 Vite 插件

javascript 复制代码
pnpm i @vitejs/plugin-vue-jsx -D

安装完毕后,需要在 vite.config.ts 中去进行插件配置

javascript 复制代码
// vite.config.ts
import vueJsx from@vitejs/plugin-vue-jsx';
javascript 复制代码
// vite.config.ts
return defineconfig({
base: './',
plugins:[
	VitePluginGitInfo()
	vue({
		script:{
			propsDestructure: true,
			defineModel: true
		},
	})
	vueJsx(),//加上插件

配置完就可以写 TSX 啦!!!

基本渲染 & 响应式 & 事件

我们可以新建一个 TsxComp.tsx 文件,来写 TSX 。写 TSX 可以不在 Vue文件 中去写

javascript 复制代码
// TSXComp.tsx
import { definecomponent, ref }from 'vue';
import {Button }from 'ant-design-vue';
export default definecomponent({
setup(){
	// setup 中负责管理数据
	const count = ref(1);
	const onclick=()=>{
	count.value++;
	};
	return {
		count,
		onclick,
	};
	render(){
	//在 render 函数中去写 TSX
		return (
			<div>
				<div>{this.count}</div>
				<Button onclick={this.onclick}>点击</Button>
			</div>
		);
	},
});

接着我们可以去渲染这个组件

javascript 复制代码
<!-- Parent.vue -->
<TSXComp />

可以看到基本的 渲染 & 响应式 & 事件 已经实现

3.JSX 和 template 哪个好呢?

  • JSX 性能好是指的编译快,编译快其实是构建时,但是真正的性能好是运行时 Vue
  • 在进行template模板编译的时候,会做各种优化,这些优化虽然会耗费构建时间,也就是构建时会比较慢,但是这些优化运用到最后产物的运行时的时候会大大提升性能

总结

  • JSX构建更快,但是性能较差
  • template构建更慢,但是性能较好

原文连接

相关推荐
前端一小卒13 小时前
我用 Claude Code 的 Superpowers 技能链写了个服务,部署前差点把服务器搞炸
前端·javascript·后端
滑雪的企鹅.14 小时前
HTML头部元信息避坑指南大纲
前端·html
一拳不是超人14 小时前
老婆天天吵吵要买塔罗牌,我直接用 AI 2 小时写了个在线塔罗牌
前端·ai编程
阿丰资源16 小时前
SpringBoot+Vue实战:打造企业级在线文档管理系统
vue.js·spring boot·后端
excel16 小时前
如何解决 Nuxt DevTools 中关于 unstorage 包的报错
前端
Rust研习社16 小时前
使用 Axum 构建高性能异步 Web 服务
开发语言·前端·网络·后端·http·rust
C澒16 小时前
AI 生码 - API2Code:接口智能匹配与 API 自动化生码全链路设计
前端·低代码·ai编程
浔川python社17 小时前
HTML头部元信息避坑指南技术文章大纲
前端·html
IT_陈寒17 小时前
SpringBoot配置加载顺序把我坑惨了
前端·人工智能·后端
kyriewen17 小时前
Next.js部署:从本地跑得欢,到线上飞得稳
前端·react.js·next.js