Vite+Vue3+Ts 项⽬搭建(全套解决⽅案Vuex 、VueRouter 、element 。。。Vite+Vue3+Ts 项⽬搭建(全套解决⽅案Vuex 、VueRouter 、elementplus 、NaiveUI 、全局深⾊适配、国际化)
使⽤Vite 创建vue3+ts 项⽬
集成 -Router
安装(两个任选其⼀)创建⽂件:src\router\index.ts·
main.ts做出如下修改,引⼊router # 创建vite 项⽬npm init @vitejs/app # 输⼊项⽬名称 Project name: » vite-devil-control # 然后选择vue (通过上下箭头切换,回车确定)# 然后选择vue 或vue+ts 1
2
3
4
5
6# router4.x 版本npm install vue-router@4 # router3.x 版本npm install vue-router
1
2
3
4import { createRouter , createWebHistory , RouteRecordRaw } from 'vue-router'// 仅做⽰例,根据业务修改路径等const Login = () => import ('../views/Login/Login.vue')const routes : RouteRecordRaw [] = [ { path : '/login', component : Login , name : 'Login', meta : { title : '登录页' } }]const router = createRouter ({ history : createWebHistory (), routes })// 前置路由router .beforeEach ((to , from , next ) => {})export default router
1
2
3
4
5
gta5怎么全屏
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
集成Vuex
安装vuex:创建store对象src\store\index.ts·:
安装store:qq公众号
安装scss 依赖
集成-plus 安装:npm install element-plus
全局引⼊全局引⼊很简单,官⽅写的很详细,在 main.ts 中import {createApp } from 'vue'import router from './router'import App from './App.vue'const app = createApp (App )app .u (router )app .mount ('#app')
1
健康教育知识讲座2
3如何证明面面垂直
4
5
6
7npm install vuex@next
1import { createStore } from 'vuex'const store = createStore ({ state () { return { name : 'coderwhy' } }})export default store
1
2
3
4
5
6
7
8
9
10
11import {createApp } from 'vue'import router from './router'import store from './store'import App from './App.vue'const app = createApp (App )app .u (router )app .u (store )app .mount ('#app')
1
2
3
4
5
6
7
8
9# 下载scss ,sass-loader ,sass npm install --save-dev sass-loader npm install --save-dev node-sass npm install --save-dev sass
1
2
3
4
局部引⼊
⾸先是全局⾮常常⽤的组件,例如按钮等……
安装babel的插件:npm install babel-plugin-import -D
新建 src/global/register-element.ts ⽂件import ElementPlus from 'element-plus'import 'element-plus/
lib/theme-chalk/index.css'import router from './router'import store from './store'createApp (App ).u (router ).u (store ).u (ElementPlus ).mount ('#app')1
2
3
4
5
6
7import {defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'// @ts-ignore import styleImport from 'vite-plugin-style-import';// vitejs.dev/config/export default defineConfig ({ plugins : [ vue (), styleImport ({ libs : [ { libraryName : 'element-plus', esModule : true , ensureStyleFile : true , resolveStyle : (name ) => { name : name .slice (3); return `element-plus/packages/theme-chalk/src/${name }.scss`; }, resolveComponent : (name ) => { return `element-plus/lib/${name }`; }, }, ],
}), ]})
1
2
3
4
5
6
7
8
9
10
11
12
13
热忱的近义词14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
src/global/index.ts
在 main.ts中引⼊
其次还有⼀些不常⽤的,可能只在某⼀两个页⾯使⽤的组件,可以使⽤这种⽅式,注册为组件后即可在当前页⾯正常使⽤。import 'element-plus/lib/theme-chalk/ba.css'import {App } from "vue";import { ElButton , ElTable , ElAlert , ElAside , ElAutocomplete , ElAvatar , ElBac
ktop , ElBadge ,} from 'element-plus'const components = [ ElButton , ElTable , ElAlert , ElAside , ElAutocomplete , ElAvatar , ElBacktop , ElBadge ]export function registerElement (app :App ):void { for (const cpn of components ) { app .component (cpn .name , cpn ) }}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2324
25
range26
27
爱尔兰雪达犬28
29
30
31import {App } from "vue";import {registerElement } from "./register-element";export function registerApp (app : App ): void { registerElement (app )}
1
2
3
4
5
6import {createApp } from 'vue'import router from './router'import {registerElement } from "./plugins/ElementPlus";import App from './App.vue'const app = createApp (App )registerElement (app )app .u (router )app .mount ('#app')
1
2
3
4
5
6
7
8
9
盘虬卧龙的意思10
集成NaiveUI 安装:npm i -D naive-ui
直接引⼊的⽅式很简单,这⾥就不做说明;另外 NaiveUI 组件多,⾮常不建议全局引⼊
⽬录说明:
按需引⼊
src/global/register-naive.ts import { ElButton } from 'element-plus'export default defineComponent ({ components : { ElButton }})
1
2
3
4
5
6
7