1.vue-cli搭建框架小白6步搞定2.下载vue-router (1)npm install vue-router (2)根目录下创建router文件夹,并在router文件夹下创建router.js文件 (3)写上router.js代码import Vue from vueimport VueRouter fro...
1.vue-cli搭建框架
小白6步搞定
2.下载vue-router
(1)npm install vue-router
(2)根目录下创建router文件夹,并在router文件夹下创建router.js文件
(3)写上router.js代码
import Vue from 'vue'
import VueRouter from 'vue-router'
/**
* 加载模块
*/
Vue.use(VueRouter)
/**
* 路由配置
*/
const router = new VueRouter({
mode: 'history',
likActiveClass: 'link-active',
routes:[
{
path: '',
// 不可以配了两个一样的routes , 使用重定向
redirect: {
name: 'login'
},
meta: {
// 添加该字段, 表示登录后才可以访问
// requireAuth: true,
// 添加该字段, 表示该组件会被缓存
// keepAlive: true,
// 添加该字段, 表示该页面允许分享
// isShare: true
}
},
{
path: '/login', //登录
name: 'login',
component(resolve) {
require.ensure(['@/components/login/login'], () => {
resolve(require('@/components/login/login'));
});
}
}
]
})
// 路由跳转前拦截
router.beforeEach((to,from,next) => {
next()
})
/**
* 路由出口
*/
export default router
(4)在main.js中引入router文件,并在Vue对象中注册
(5)修改App.vue(展示路由跳转的页面)
<template>
<div id="app" class="wrapper">
<transition>
<router-view></router-view>
</transition>
</div>
</template>
<script>
export default {
name: 'App',
components: {
}
}
</script>
<style>
</style>
3.安装axios(官网)
(1)npm install axios
(2)项目根目录下创建axios文件夹,并在文件夹下创建api.js,axios.js,http.js三个js文件
api.js为保存api文件
axios.js为导出封装好的对象
http.js为二次封装的axios
http.js
import axios from 'axios';
// axios 配置
axios.defaults.timeout = 5000;
//http request 拦截器
axios.interceptors.request.use(
config => {
// const token = getCookie('名称');注意使用的时候需要引入cookie方法,推荐js-cookie
const token = getCookie('session'); //获取Cookie
config.data = JSON.stringify(config.data);
config.headers = {
'Content-Type':'application/json',
}
if(token){
config.params = {'token':token}
}
return config;
},
error => {
return Promise.reject(err);
}
);
//http response 拦截器
axios.interceptors.response.use(
response => {
// console.log(response)
if(response.data.errCode ==2){
// router.push({
// path:"/login",
// querry:{redirect:router.currentRoute.fullPath}//从哪个页面跳转
// })
}
return response;
},
error => {
return Promise.reject(error)
}
)
/**
* 封装get方法
* @param url
* @param data
* @returns {Promise}
*/
export function get(url,params={}){
return new Promise((resolve,reject) => {
axios.get(url,{
params:params
})
.then(response => {
resolve(response.data);
})
.catch(err => {
reject(err)
})
})
}
/**
* 封装post请求
* @param url
* @param data
* @returns {Promise}
*/
export function post(url,data = {}){
return new Promise((resolve,reject) => {
axios.post(url,data,
{}
)
.then(response => {
resolve(response.data);
},err => {
reject(err)
})
})
}
/**
* 封装patch请求
* @param url
* @param data
* @returns {Promise}
*/
export function patch(url,data = {}){
return new Promise((resolve,reject) => {
axios.patch(url,data)
.then(response => {
resolve(response.data);
},err => {
reject(err)
})
})
}
/**
* 封装put请求
* @param url
* @param data
* @returns {Promise}
*/
export function put(url,data = {}){
return new Promise((resolve,reject) => {
axios.put(url,data)
.then(response => {
resolve(response.data);
},err => {
reject(err)
})
})
}
axios.js
import Vue from 'vue'
import axios from 'axios'
import {post,get,patch,put} from '../axios/http'
//定义全局变量
Vue.prototype.$post=post;
Vue.prototype.$get=get;
Vue.prototype.$patch=patch;
Vue.prototype.$put=put;
(3)在main.js中写引入
(4)调用
本文标题为:vue+vue-routr+axios项目搭建(目前项目在用)
基础教程推荐
- Flutter进阶之实现动画效果(三) 2022-10-28
- Android实现短信验证码输入框 2023-04-29
- iOS中如何判断当前网络环境是2G/3G/4G/5G/WiFi 2023-06-18
- Android Compose自定义TextField实现自定义的输入框 2023-05-13
- IOS获取系统相册中照片的示例代码 2023-01-03
- MVVMLight项目Model View结构及全局视图模型注入器 2023-05-07
- iOS开发使用XML解析网络数据 2022-11-12
- Android开发Compose集成高德地图实例 2023-06-15
- iOS Crash常规跟踪方法及Bugly集成运用详细介绍 2023-01-18
- iOS开发 全机型适配解决方法 2023-01-14