vue3 新建項目 包括 vue-router vuex axios的配置

main.js

import {createApp} from 'vue'
import App from './App.vue'
import routes from "@/routes";
import {store} from '@/vuex'
import qs from 'qs'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

const app = createApp(App)
app.config.globalProperties.$store = store
app.config.globalProperties.$qs = qs
app.use(routes)
app.use(store)
app.use(ElementPlus)
app.mount('#app')

vue-router

index.js
// import VueRouter from 'vue-router'
import config from './config'
import { createRouter } from 'vue-router'
const router = createRouter(config)

export default router
config.js
import {createWebHashHistory} from 'vue-router'

export default {
    history: createWebHashHistory(),
    routes: [
        {
            path: '/',
            name: 'index',
            redirect: 'home',
            component: () => import('../views/index'),
            children: [
                {
                    path: 'home',
                    name: 'home',
                    component: () => import('../views/home/home')
                },
            ]
        },
        {
            path: '/test',
            name: 'test',
            component: () => import('../views/Test')
        },
        {
            path: '/:pathMatch(.*)*',
            name: '404',
            component: () => import('../views/NotFound')
        },
    ]
}

vuex

import {createStore} from 'vuex'

export const store = createStore({
    state: {
        name: '',
        count: 0,
        token: ''
    },
    mutations: {
        setName(state, data) {
            state.name = data
        },
        addCount(state) {
            state.count++
        },
        setToken(state, data) {
            state.token = data
        }
    },
})

axios

axios.js
import axios from 'axios'
import {BASE_URL} from "@/api/config";
import {store} from "@/vuex";

const service = axios.create({
    baseURL: process.env.NODE_ENV === 'production' ? BASE_URL : '/api/',
    timeout: 50000, // 請求超時uploadBuildExcel
    responseType: 'json',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
    },
})

service.interceptors.request.use(config => {
    if (!config.headers.token) {
        config.headers.token = store.state.token
    }
    return config
})

export default service
config.js axios請求的地址
export const BASE_URL = process.env.VUE_APP_API_BASE_URL
.env
VUE_APP_API_BASE_URL=http://du.ys-n.com/api/
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 項目初始化過程 (項目git地址在最后) 1.基于3.x版本的VUE 直接使用 vue create 項目名稱 初...
    flyinskybiu閱讀 379評論 0 0
  • ? 注:筆者的文章是根據(jù)自己當前項目做的筆記,具體應(yīng)用請參照自己實際項目情況 1、創(chuàng)建應(yīng)用 2、配置axios及p...
    Issho閱讀 274評論 0 0
  • 還沒用幾天VUE,就到3了,本文旨在記錄構(gòu)建一個實用項目模板昂。 1、自然是將VUE-CLI升級到最新版本啦(卸載...
    2d7d8f6263c1閱讀 518評論 0 0
  • 1、前言 技術(shù)棧: vue element-ui axios http請求庫 markdown編輯器mavo...
    森小森_閱讀 611評論 0 1
  • 概述 本系列為小連載,記錄一個前端攻城獅對項目的孵化過程,內(nèi)容包括開發(fā)環(huán)境,項目搭建,項目工程化等,其中項目工程化...
    蘇茶茉芳_亞澤伊閱讀 3,351評論 0 11

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