0到1的vue3+ts+vite前端Web項(xiàng)目搭建

為了熟悉vue3+ts的開發(fā)風(fēng)格,搭建的一個(gè)仿小紅書的WebApp(已開源);持續(xù)迭代中......

gitHub倉(cāng)庫(kù) :https://github.com/xxljunjun/vue3-webApp

線上地址:http://www.xxljunjun.com/redbook

一、搭建項(xiàng)目

  • npm init vite@latest
    踩坑:vite項(xiàng)目需要node版本大于16!??!
  • 通過vite@latest創(chuàng)建的是vite3.0.7的版本
  • npm run dev啟動(dòng)項(xiàng)目


二、配置路徑別名

踩坑:vite中不支持require()語(yǔ)法!?。?/strong>

  • 編輯vite.config.ts
//如果報(bào)錯(cuò)就安裝:npm install --save-dev @types/node
import path from 'path'
import { defineConfig } from 'vite'

// https://vitejs.dev/config/
export default defineConfig({
    resolve:{
      // 配置路徑別名
      alias: {
        '@': path.resolve(__dirname, './src'),
      },
    },
})

三、安裝css預(yù)編譯語(yǔ)言(sass、less、stylus三者選一即可)

// # Sass
npm install -D sass-loader sass

// # Less
npm install -D less-loader less

// # Stylus
npm install -D stylus-loader stylus

npm install style-resources-loader -D

四、配置路由

  • 1、npm install -S vue-router@next
  • 2、新建路由文件:vue3-webApp/src/router/index.js
import { createRouter, createWebHashHistory } from "vue-router";

const routes = [
    {
        path: "/",
        name: "home",
        //記得順便新建home文件的index.vue組件
        component: () => import("@/views/home/index.vue"),
    }
]

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

export default router;

+3、更改App.vue文件

<template>
  <router-view></router-view>
</template>
  • 4、更改main.ts文件
import { createApp } from 'vue'
import App from './App.vue'
import router from '@/router/index.js'

//創(chuàng)建應(yīng)用實(shí)例對(duì)象
const app = createApp(App)
app.use(router).mount('#app')
  • 5、路由在vue文件中的使用
<script setup lang="ts">
import { useRouter, useRoute } from "vue-router";
const router = useRouter();
const goBack = () => {
  router.push({ path: "/home" });
};
</script>

五、安裝vant-UI組件庫(kù)


npm install vant -S

//按需引入
npm i unplugin-vue-components -D
//需要配置vite.config

+vant支持vue3:https://vant-contrib.gitee.io/vant/#/zh-CN

vant官網(wǎng)

六、移動(dòng)端適配

  • npm install postcss-pxtorem --save-dev
  • npm install amfe-flexible --save-dev
  • 配置main.ts
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
// 移動(dòng)端適配
import 'amfe-flexible'

//創(chuàng)建應(yīng)用實(shí)例對(duì)象
const app = createApp(App)
app.use(router).mount('#app')
  • 配置vite.config.js
//vite.config.js中配置postcss-pxtorem
export default defineConfig({
  css: {
    postcss: {
      plugins: [
        postCssPxToRem({
          rootValue: 37.5, // 1rem的大小
          propList: ['*'], // 需要轉(zhuǎn)換的屬性,這里選擇全部都進(jìn)行轉(zhuǎn)換
        })
      ]
    }
  },
})

七、vue3中的事件總線通信

在vue3中兄弟組件之間的通信不存在eventBus了,官方推薦使用mitt

npm install --save mitt
//bus.js
import mitt from "mitt";
const emitter = mitt()
export default emitter
//使用
emitter.emit()
emitter.on()

最后

這個(gè)vue3+ts+vite的前端Web項(xiàng)目就搭建完了,可以進(jìn)行頁(yè)面的開發(fā)了?。?!
缺陷:暫時(shí)還沒有加入vuex的通信,感興趣的同學(xué)可以自己去探索一下

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容