Vite+Vue3+Ts项目搭建(全套解决方案Vuex、VueRouter、element。。。

更新时间:2023-06-20 23:03:19 阅读: 评论:0

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

本文发布于:2023-06-20 23:03:19,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1001667.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:安装   组件   全局   修改   创建
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图