美文网首页
vue3构建,引入router、vuex、axios

vue3构建,引入router、vuex、axios

作者: 昵称被占用厉害了 | 来源:发表于2022-04-08 08:31 被阅读0次

一、路由router

1、安装路由

    npm install vue-router@next -S -D (注:-s是保存在dependencies中,是要发布到正式环境中的。-d是保存在devDependencies中,只用于开发环境)

2、配置路由

   目录: /src/router/index.js

import {createRouter, createWebHashHistory,createWebHistory }from 'vue-router';

const router =createRouter({

history:createWebHistory(),

  routes: [

// @ 是 /src 的别名

    {path:'/name', component: () =>import('../components/HelloWorld.vue') }

]

})

export default router

3、配置 main.js

import router from "@/router"

createApp(App).use(router).mount('#app')

4、使用

  <router-link to="/name">路由跳转 </router-link>

  <router-view></router-view>

二、状态管理vuex

1、安装vuex

npm install vuex@next -S -D

2、配置vuex

import {createStore }from 'vuex'

const store =createStore({

state: {

count:10

  }

})

export default store

3、配置 main.js

import store from './store'

const Appcreate=createApp(App)

Appcreate.use(store)

4、使用

import store from '../store/index.js'

<h2>{{store.state.count}}</h2>

三、数据请求封装

1、安装axios

npm install axios -S -D

2、配置生产环境文件

在根目录下添加配置文件 .env.development

VITE_APP_BASE_API= '请求的 baseURL'

注意:修改该文件后需要重启项目。

3、请求封装

目录:utils/request.js

import axios from 'axios'

// 创建 axios 实例

const service = axios.create({

  // 在请求地址前面加上 baseURL

  baseURL: import.meta.env.VITE_APP_BASE_API,

  // 请求超时时间

  timeout: 5000

})

// 请求拦截

service.interceptors.request.use(

  (config) => {

    // 在请求前做某些事情

    return config

  },

  (error) => {

    // 处理请求错误

    return Promise.reject(error)

  }

)

// 响应拦截器

service.interceptors.response.use(

  (response) => {

    // 响应成功

    return response

  },

  (error) => {

    // 处理响应错误

    return Promise.reject(error)

  }

)

export default service

4、封装第一个接口

目录:api/user.js

import service from '@/utils/request.js'

export const getUsers = (params) => {

  return service({

    url: '/getUsers',

    method: 'get',

    params

  })

}

相关文章

网友评论

      本文标题:vue3构建,引入router、vuex、axios

      本文链接:https://www.haomeiwen.com/subject/ikzjsrtx.html