飞道的博客

vue3+vite前端搭建初步入门

491人阅读  评论(0)

vue2+webpack用了几年时间了,现在vue3越来越火,据说vite的打包速度非常快,这里就记录一下vue3+vite的一些简单的入门内容

项目创建

项目创建也是通过npm命令就可以了


  
  1. npm init vite-app demo #demo是项目名
  2. #跳转到项目的根目录,然后install
  3. npm install
  4. # 本地运行
  5. npm run dev

这样项目就创建好了

必备工具

eventBus不能用的解决方案

用习惯vue的人,肯定经常使用eventBus。在刚刚创建的项目中,会发现就没有办法配置eventBus,这是因为Vue已经弃用了eventBus,可以通过插件mitt来替代。

  • 安装插件
npm install --save mitt
  • 简单封装

 在项目中创建bus.js,内容如下:


  
  1. import mitt from 'mitt'
  2. const bus = {}
  3. const emitter = mitt()
  4. bus.$on = emitter.on
  5. bus.$off = emitter.off
  6. bus.$emit = emitter.emit
  7. export default bus
  • 引入

 在main.js文件中引入


  
  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import './index.css'
  4. import Bus from './bus'
  5. const app=createApp(App);
  6. app.config.globalProperties.$bus = Bus
  7. app.mount( '#app');
  • 使用

  
  1. this.$bus.$on( 'test',res=>{
  2. console.log(res)
  3. })
  4. this.$bus.$emit( 'test', "111")

多环境打包

做前端开发,我们经常遇到不同的环境打不通的包,使用不同的接口地址,vue3+vite的多环境打包和vue2+webpack变化还是非常大的。

  • 在项目的根目录下新建.env.development.env.production.env.test三个文件

 

  • .env.development为例展示其中的内容,
    
        
    1. NODE_ENV=development
    2. VITE_BASESERVER= 'http://****:8849/server-base/api/v1'
    3. VITE_API_AUTH= 'http://****:8849/api-auth/api/v1'

    注意,后面不用加分号,注释也不能加载url后面,常量名也必须已VITE_开头

  • 代码中引用
let url=import.meta.env.VITE_BASESERVER + '/feature/add'
  •  配置打包命令

 在package.json文件里配置打包命令,使用不同环境


  
  1. "dev": "vite",
  2. "build:test": "vite build --mode test",
  3. "build:pro": "vite build --mode production"

 使用Vue router

  •  默认vue3+vite里是没有router的,需要自己配置
npm install vue-router@next --save 
  • 创建router文件夹,并在里面创建index.js,index.js内容为

  
  1. import { createRouter, createWebHistory } from 'vue-router'
  2. import Home from '../views/Home.vue' //自己创建的页面
  3. import BackStage from '../views/BackStage.vue' //自己创建的页面
  4. const routerHistory = createWebHistory()
  5. const router = createRouter({
  6. history: routerHistory,
  7. routes: [
  8. {
  9. path: '/',
  10. component: Home
  11. },
  12. {
  13. path: '/contact',
  14. component: BackStage
  15. }
  16. ]
  17. })
  18. export default router

在main.js 中引入


  
  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import './index.css'
  4. import Bus from './bus'
  5. import router from './router'
  6. const app=createApp(App);
  7. app.config.globalProperties.$bus = Bus
  8. app.use(router)
  9. .mount( '#app');

配置VueX

  • 安装依赖 
npm install vuex@next
  •  创建store文件夹,并创建store.js

  
  1. import { createStore } from "vuex";
  2. export default createStore({
  3. state() {
  4. return {
  5. count: 0,
  6. };
  7. },
  8. mutations: {
  9. add(state) {
  10. state.count++;
  11. },
  12. },
  13. actions: {
  14. add(context) {
  15. context.commit( "add");
  16. },
  17. },
  18. });
  •  在main.js中引用

  
  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import './index.css'
  4. import Bus from './bus'
  5. import store from './store/store'
  6. import router from './router'
  7. const app=createApp(App);
  8. app.config.globalProperties.$bus = Bus
  9. app.use(router)
  10. .use(Bus)
  11. .use(store)
  12. .mount( '#app');
  • 代码中调用

  
  1. computed: {
  2. test() {
  3. return this.$store.state.test;
  4. },
  5. },

其他

至于element-plus之类的ui框架,就看着官网的配置进行设置吧


转载:https://blog.csdn.net/GISuuser/article/details/115916671
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场