JSX 基础学习第一篇:以 Vue 3 为例

JSX(JavaScript XML)是一种 JavaScript 的语法扩展,用于描述 UI 结构。在 Vue 3 中,你可以使用 JSX 与 setup 函数结合,创建更加灵活和直观的组件。

准备工作

确保你已经安装了 Node.js 和 npm。然后,使用以下命令安装 Vue CLI:

bash 复制代码
npm install -g @vue/cli

创建一个新的 Vue 3 项目:

bash 复制代码
vue create my-jsx-project

在提示中选择 Vue 3。

安装必要依赖

为了在 Vue 3 中使用 JSX,你需要安装 @vue/babel-plugin-jsx

bash 复制代码
npm install @vue/babel-plugin-jsx --save-dev

然后,在 babel.config.js 文件中添加这个插件:

javascript 复制代码
module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset',
  ],
  plugins: ['@vue/babel-plugin-jsx'],
};

使用 JSX 创建组件

src/components 目录下,创建一个名为 MyButton.jsx 的文件,并添加以下内容:

jsx 复制代码
export default {
  setup() {
    return () => (
      <button>Click Me!</button>
    );
  },
};

在这个例子中,我们使用 setup 函数返回一个渲染函数,该函数使用 JSX 描述 UI。

在父组件中使用 JSX 组件

src/App.vue 文件中,你可以这样使用 MyButton 组件:

vue 复制代码
<template>
  <div>
    <MyButton />
  </div>
</template>

<script setup>
import MyButton from './components/MyButton.jsx';

// 其他逻辑
</script>

或者,你也可以在 setup 函数中使用 JSX:

jsx 复制代码
<script setup>
import { ref } from 'vue';
import MyButton from './components/MyButton.jsx';

const count = ref(0);

const increment = () => {
  count.value++;
};

</script>

<template>
  <div>
    <button @click="increment">Increment</button>
    <p>Count: {{ count }}</p>
    <MyButton />
  </div>
</template>

总结

在这篇文章中,我们介绍了如何在 Vue 3 中使用 JSX,以及如何创建和使用 JSX 组件。JSX 提供了一种更加灵活和直观的方式来描述 UI,特别是在与 setup 函数结合使用时。

下一篇文章中,我们将深入探讨 JSX 的高级特性和用法。希望这篇文章能帮助你入门 Vue 3 和 JSX!

相关推荐
天下无贼!1 小时前
2024年最新版Vue3学习笔记
前端·vue.js·笔记·学习·vue
Jiaberrr1 小时前
JS实现树形结构数据中特定节点及其子节点显示属性设置的技巧(可用于树形节点过滤筛选)
前端·javascript·tree·树形·过滤筛选
赵啸林1 小时前
npm发布插件超级简单版
前端·npm·node.js
罔闻_spider1 小时前
爬虫----webpack
前端·爬虫·webpack
吱吱鼠叔1 小时前
MATLAB数据文件读写:1.格式化读写文件
前端·数据库·matlab
爱喝水的小鼠2 小时前
Vue3(一) Vite创建Vue3工程,选项式API与组合式API;setup的使用;Vue中的响应式ref,reactive
前端·javascript·vue.js
盏灯2 小时前
前端开发,场景题:讲一下如何实现 ✍电子签名、🎨你画我猜?
前端
WeiShuai2 小时前
vue-cli3使用DllPlugin优化webpack打包性能
前端·javascript
Wandra2 小时前
很全但是超级易懂的border-radius讲解,让你快速回忆和上手
前端
ice___Cpu2 小时前
Linux 基本使用和 web 程序部署 ( 8000 字 Linux 入门 )
linux·运维·前端