vue3+vite+vant搭建項(xiàng)目

摸魚不如學(xué)vue3聋涨,總結(jié)一下帶薪學(xué)習(xí)的收獲

1. 新建vue版本的vite項(xiàng)目模板

yarn create vite my-vue-app --template vue

2.引入U(xiǎn)I框架(vant琼娘,按需導(dǎo)入)

安裝3.x版本vant

npm i vant@next -S

使用 vite-plugin-style-import 實(shí)現(xiàn)按需引入谚攒。


// vite.config.js

import vue from '@vitejs/plugin-vue';

import styleImport from 'vite-plugin-style-import';

export default {

  plugins: [

    vue(),

    styleImport({

      libs: [

        {

          libraryName: 'vant',

          esModule: true,

          resolveStyle: (name) => `vant/es/${name}/style`,

        },

      ],

    }),

  ],

};

注意在使用的時(shí)候要在main.js中導(dǎo)入相關(guān)的組件(之前忘了導(dǎo)入,試半天沒效果= =)

// main.js
// 以button組件為例
import { createApp } from 'vue';
import { Button } from 'vant';

const app = createApp();
app.use(Button);

3.集成路由

此處用到alias牌芋,所以把vite配置相關(guān)貼出來

export default defineConfig({
  //...
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "src"),
      "components": path.resolve(__dirname, "src/components"),
      "styles": path.resolve(__dirname, "src/styles"),
      "plugins": path.resolve(__dirname, "src/plugins"),
      "views": path.resolve(__dirname, "src/views"),
      "layouts": path.resolve(__dirname, "src/layouts"),
      "utils": path.resolve(__dirname, "src/utils"),
      "apis": path.resolve(__dirname, "src/apis"),
      "dirs": path.resolve(__dirname, "src/directives"),
    },
  }
  //...
})

npm install vue-router@next
tip:之前沒裝@next版本乎完,路由是3.x版本的,不支持相關(guān)的api亡容,所以要注意在vue3時(shí)要裝@next嗤疯,也就是4.x版本的路由

新建router文件夾及index.js

// index.js簡(jiǎn)單配置 routes和vue2定義是一樣的
import * as VueRouter from 'vue-router'
import routes from './routes'

const router = VueRouter.createRouter({
  routes,
  history: VueRouter.createWebHashHistory(),
})

export default router

main.js中使用router

import router from "./router";
app.use(router);
app.mount("#app");

使用router
這里我導(dǎo)入router/index.js創(chuàng)建好的路由并且調(diào)用push,看到很多帖子上說

import {useRouter} from 'vue-router'
const router = useRouter()
router.push('/xxx')

這樣的方式可以闺兢,但是我試過會(huì)報(bào)錯(cuò)身弊,useRouter()是個(gè)null,這個(gè)問題我不知道為何列敲,有知道的可以告知我一下哈

我的router使用:

import vueRouter from "@/router";
vueRouter.push("/test");

4.main.ts入口支持

npm install typescript

根目錄添加tsconfig.json

{
    "compilerOptions": {
        "target": "esnext",
        "module": "esnext",
        "strict": true, 
        "jsx": "preserve",
        "moduleResolution": "node"
    },
    "include": [
        "src/**/*",
        "src/main.d.ts"
    ],
    "exclude": [
        "node_modules"
    ]
}

修改main.js為main.ts 以及index中的引入也改為main.ts


至此已經(jīng)可以寫寫靜態(tài)和路由跳轉(zhuǎn)阱佛,axios和vuex的集成在后面再補(bǔ)充吧

使用tsx開發(fā)

之前使用非vite項(xiàng)目集成tsx,發(fā)現(xiàn)報(bào)錯(cuò)React is not defined戴而,看到這個(gè)報(bào)錯(cuò)感到十分頭疼凑术,抱著試試的想法百度了下,居然還真找到了解決方法
具體可以參考這個(gè)https://blog.csdn.net/weixin_44441196/article/details/118727593
大概就是要裝vite版本的plugin-vue-jsx然后vite.config.js配置一下所意,就可以愉快地寫tsx了淮逊!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市扶踊,隨后出現(xiàn)的幾起案子泄鹏,更是在濱河造成了極大的恐慌,老刑警劉巖秧耗,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件备籽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡分井,警方通過查閱死者的電腦和手機(jī)车猬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尺锚,“玉大人珠闰,你說我怎么就攤上這事√北纾” “怎么了伏嗜?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵坛悉,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我承绸,道長(zhǎng)裸影,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任八酒,我火速辦了婚禮空民,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘羞迷。我一直安慰自己界轩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布衔瓮。 她就那樣靜靜地躺著浊猾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪热鞍。 梳的紋絲不亂的頭發(fā)上葫慎,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音薇宠,去河邊找鬼偷办。 笑死,一個(gè)胖子當(dāng)著我的面吹牛澄港,可吹牛的內(nèi)容都是我干的椒涯。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼回梧,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼废岂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起狱意,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤湖苞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后详囤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體财骨,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年纬纪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蚓再。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡包各,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出靶庙,到底是詐尸還是另有隱情问畅,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站护姆,受9級(jí)特大地震影響矾端,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜卵皂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一秩铆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧灯变,春花似錦殴玛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至刃泌,卻和暖如春凡壤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背耙替。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工亚侠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人俗扇。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓硝烂,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親狐援。 傳聞我的和親對(duì)象是個(gè)殘疾皇子钢坦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容