Vue3基础(21)___在axios.js中使用路由跳转
2023-09-27 14:22:48 时间
在vue2中我们只需要引入main.js即可获取this实例,直接
this.$router.push('/login')
首先在vue3中我们使用comAPI,但是在自己封装的js里面,我们不能使用useRouter ,useRoute,他们需要在setup中调用执行后才能用,于是给出解决办法:
直接使用router实例:
import axios from 'axios'
import { ElMessage } from "element-plus";
import router from '../../router'
let Ajax = axios.create({
baseURL: "http://127.0.0.1:3003/",
timeout: 5000
})
Ajax.interceptors.response.use(response => {
if (response.data.data.code == 2) {
ElMessage(response.data.data.data)
router.push('/login')
localStorage.removeItem('username')
return []
}
return response.data;
}, error => {
return Promise.reject(error);
});
const get = (url, params) => {
Ajax.defaults.headers['token'] = localStorage.getItem('token')
return new Promise((relove, reject) => {
Ajax.get(url, { params }).then(res => relove(res)).catch(err => reject(err))
})
}
const post = (url, params) => {
Ajax.defaults.headers['token'] = localStorage.getItem('token')
return new Promise((relove, reject) => {
Ajax.post(url, params).then(res => relove(res)).catch(err => reject(err))
})
}
export default {
get, post
}
核心:
import router from '../../router'
router.push('/login')
router文件下的index.js文件就是我们的路由实例。
我们的路由文件:
import { createRouter, createWebHashHistory } from 'vue-router'
const router = createRouter({
history: createWebHashHistory(),
routes: [
//主页面
{
path: "/home",
component: () => import('../views/home.vue'),
redirect: '/home/userlist',
children: [
{
path: 'userlist',
component: () => import('../components/userlist.vue')
},
{
path: 'userinfo',
component: () => import('../components/userinfo.vue')
},
]
},
//登录页面
{
path: "/login",
component: () => import('../views/login.vue')
},
//直接报错
// {
// path: "*",
// redirect: "/login"
// },
//正确写法:
//1
// {
// path: "/:catchAll(.*)",
// redirect: "/login"
// },
//2
// {
// path: "/:pathMatch(.*)*",
// redirect: "/login"
// },
//3
{
path: "/:pathMatch(.*)",
redirect: "/login"
},
],
})
export default router
相关文章
- vue3项目,记录我是如何用1h实现产品预估1天工作量的界面需求
- Vue3中ref和toRef的区别
- 认真总结Vue3中ref与reactive区别和isRef与isReactive 类型判断
- Vue2.x和Vue3.x v-for中还可以这样解构赋值
- Vue3基础(23)___vue3非父子组件之间的通信
- Vue3基础(22)___vue3中使用$forceUpdate
- Vue3基础(十liu)___手写 shallowRef___shallowReactive
- Vue3基础(五)___watch
- 26.Vue3:条件渲染
- Vue3学习(五)集成styleLint&git
- 前端笔记(11) Vue3 Router 编程式导航 router.push router.replace
- Vue3详细教程
- vue3:script上使用setup语法糖
- css变量系列(5):vue3在css中调用js变量
- 感受 Vue3 的魔法力量
- Vue3 pinia 的使用
- Vue3 组件。基本组件,全局组件引用,组件批量引用