Vite創建Vue3項目及Vue3使用jsx詳解

Vite創建Vue3項目

Vite 需要 Node.js 版本 >= 12.0.0。(node -v 查看自己當前的node版本)

  • 使用 yarn:yarn create @vitejs/app
  • 使用 npm:npm init @vitejs/app

1. 輸入項目名稱

這裡輸入我們的項目名稱:vite-vue3

2. 選擇框架

這裡選擇我們需要集成的框架:vue

  • vanilla:原生js,沒有任何框架集成
  • vue:vue3框架,隻支持vue3
  • react:react框架
  • preact:輕量化react框架
  • lit-element:輕量級web組件
  • svelte:svelte框架

3. 選擇不同的vue

這裡我們選擇:vue

4. 項目創建完成

5. 項目結構

項目結構非常簡單:

6. 啟動項目

  • 進入項目:cd vite-vue3
  • 安裝依賴:npm install
  • 運行項目:npm run dev 或 npx vite
  • 編譯項目:npm run build 或 npx vite build

啟動速度極快

Vue3中使用jsx

Vite創建的Vue3項目中是無法直接使用jsx 的,需要引入插件來實現

1. 安裝插件

  • 使用 yarn:yarn add @vitejs/plugin-vue-jsx -D
  • 使用 npm: npm i @vitejs/plugin-vue-jsx -D

2. 註冊插件

vite.config.js 中:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from "@vitejs/plugin-vue-jsx";

// https://vitejs.dev/config/
export default defineConfig({
    plugins: [vue(), vueJsx()]
})

3. 使用插件

方法一:修改App.vue

不使用 jsx,App.vue是這樣:

<script setup>
import HelloWorld from './components/HelloWorld.vue';
</script>

<template>
    <img alt="Vue logo" src="./assets/logo.png" />
    <HelloWorld msg="Hello Vue 3 + Vite" />
</template>

使用 jsx,App.vue是這樣:

<script lang="jsx">
import { defineComponent } from 'vue';
import HelloWorld from './components/HelloWorld.vue';
import logo from './assets/logo.png';

export default defineComponent({
    render: () => (
        <div>
            <img alt="Vue logo" src={logo} />
            <HelloWorld msg="Hello Vue 3 + Vite" />
        </div>
    ),
});
</script>

方法二:刪除App.vue,新建App.jsx

新建App.jsx文件

import { defineComponent } from 'vue';
import HelloWorld from './components/HelloWorld.vue';
import logo from './assets/logo.png';

export default defineComponent({
    setup () {
        return () => {
            return (
                <div>
                    <img alt="Vue logo" src={logo} />
                    <HelloWorld msg="Hello Vue 3 + Vite" />
                </div>
            )
        }
    }
});

再修改main.js的引入

import App from './App.vue' 改為 import App from './App'

import { createApp } from 'vue'
import App from './App'

createApp(App).mount('#app')

註意

  • 不支持eslint在保存時,做eslint校驗
  • vite的編譯入口不同於webpack,不是js文件,而是以index.html為編譯入口。在index.html中,通過<script type="module" src="/src/main.js"></script>加載main.js,這時請求到達瞭vite的serve層

總結

到此這篇關於Vite創建Vue3項目及Vue3使用jsx的文章就介紹到這瞭,更多相關Vite創建Vue3項目內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: