Vue笔记第五天(路由的使用和整合,全局axios)

第五天

1.Vue路由基本使用
a. 下包 npm i vue-router
b. 导包 import VueRouter from'vue-router'
c. 用包
①Vue.use(VueRouter )
②. 路由规则
1. 创建对应的组件xxx.vue
③. 创建路由对象 传入规则
④. 路由对象设置给Vue实例
d. 设置导航栏和内容

  1. App.vue

e. 组件的位置

  1. components/ xxx.vue

2 .axios的使用
a.下包 npm i axios
b.导包 import axios from 'axios'
c.在main.js中把axios设置为全局 Vue.prototype.$axios = axios
原因:这样做了以后在其他Vue文件里,通过this.$axios就可以访问了

为什么要加$符号呢?

  • 这是规范
  • 为什么有这个规范?
    • 为了区分这个属性是自己的还是原型里继承来的

3.设置axios基地址
因为我们项目一般访问的接口,前面网址都是一样的,只是后面的路径部分不一样,所以有个方法axios发请求时只要写路径部分,它自动帮我拼前面的网址部分,
代码:axios.defaults.baseURL ='接口地址路径'

4.整合路由
路由的好处,官网介绍的很清楚,我就不做过多赘述https://router.vuejs.org/zh/

a.编码位置在main.js中
a. 下包 npm i vue-router
b. 导包 import VueRouter from'vue-router'
c. 用包
①Vue.use(VueRouter )
②. 创建路由规则
1. 创建一个组件xxx.vue
2. routes=[ {path:"/xx",component:组件} ]
③创建路由对象
1.router
④设置给Vue实例
1.new Vue({ router })

b.编码位置在app.vue中
<router-view></router-view>
路由组件的页面在这个里面显示

c.编码位置在components中
添加的组件在components文件夹中

d.编码位置在assets中
静态资源放在assets文件夹中

5.编程式导航 - 让你可以用代码进行路由的跳转
$router.push('路径')
//如果写在methods记得加this,如果写在行内不用加this的

6.动态路由匹配 - 让你跳到对应的路由(对应的组件),还可以带参数过去
在这里插入图片描述

注意点:

  • 编程式导航:用来跳转的路由
    • $router
  • 拿传递过来的参数,用
    • $route
      • $route.params.参数名
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue项目中全局配置axios路由,可以按照以下步骤进行: 1. 安装axiosvue-router ``` npm install axios vue-router --save ``` 2. 在src目录下创建一个config.js文件,用于存放全局配置 ```javascript import axios from 'axios' import router from '../router' // axios配置 axios.defaults.baseURL = 'http://localhost:3000' axios.defaults.timeout = 5000 // 请求拦截器 axios.interceptors.request.use( config => { // 如果有token则添加到请求头中 if (localStorage.token) { config.headers.Authorization = localStorage.token } return config }, error => { return Promise.reject(error) } ) // 响应拦截器 axios.interceptors.response.use( response => { // 如果返回的状态码为200,说明接口请求成功,可以正常拿到数据 // 否则的话抛出错误 if (response.status === 200) { return Promise.resolve(response) } else { return Promise.reject(response) } }, error => { if (error.response.status) { switch (error.response.status) { // 401: 未登录 // 未登录则跳转登录页面,并携带当前页面的路径 // 在登录成功后返回当前页面,这一步需要在登录页操作。 case 401: router.replace({ path: '/login', query: { redirect: router.currentRoute.fullPath } }) break // 403 token过期 // 登录过期对用户进行提示 // 清除本地token和清空vuex中token对象 // 跳转登录页面 case 403: alert('登录过期,请重新登录') // 清除token localStorage.removeItem('token') // store.commit('loginSuccess', null) setTimeout(() => { router.replace({ path: '/login', query: { redirect: router.currentRoute.fullPath } }) }, 1000) break // 404请求不存在 case 404: alert('网络请求不存在') break // 其他错误,直接抛出错误提示 default: alert(error.response.data.message) } return Promise.reject(error.response) } } ) export default axios ``` 3. 在main.js中引入config.js文件,并将axios和router挂载到Vue.prototype上 ```javascript import Vue from 'vue' import App from './App.vue' import router from './router' import axios from './config' Vue.config.productionTip = false Vue.prototype.$axios = axios Vue.prototype.$router = router new Vue({ router, render: h => h(App), }).$mount('#app') ``` 现在可以在Vue项目的任何地方使用axios和router了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值