[TOC]
#### 封装Axios请求
~~~
import axios from 'axios'
/**
*
* @param url 请求url
* @param params 请求参数
* @param type 请求类型
* @returns {Promise<any>} 返回Promise对象
*/
export default function ajax(url = '', params = {}, type = 'GET')
{
let promise;
return new Promise((resolve, reject) => {
// 判断请求类型
if (type === 'GET')
{
let paramStr = ''; // {id:1, name: '张三', age: 18}
// [id, name, age]
Object.keys(params).forEach(key => {
// id=1&name=张三&age=18&
paramStr += key + '=' + params[key] + '&'
})
// 截取最后一位&符
if (paramStr.length > 0 )
{
// id=1&name=张三&age=18
paramStr = paramStr.substring(0, paramStr.lastIndexOf('&'))
}
// 拼接最终url http://localhost/?id=1&name=张三&age=18
url += '?' + paramStr;
// 发送 get 请求
promise = axios.get(url)
} else if (type === 'POST') {
promise = axios.post(url)
}
// 返回请求体
promise.then(res => {
resolve(res.data)
})
.catch(err => {
reject('服务端异常,请联系后台管理员' + err)
})
})
}
~~~
*****
#### 进行调用
~~~
import ajax from './ajax'
// 获取首页banner数据
export const getHomeBanner = () => ajax('/api/getBanner');
~~~
- 起步
- 环境搭建
- mock数据
- 基础
- 生命周期
- 过滤器
- 过渡动画
- keyframes动画
- 动画JS钩子
- 路由
- 导航守卫
- 全局守卫
- 监听器
- 自定义组件
- 获取焦点
- mixins
- mixins抽离vuex
- 国际化
- 动态组件
- Dom
- 扩展
- 安装devTools
- scss
- Nuxt引用多个UI库
- vuex
- vuex命名空间
- vuex定义
- cli
- 安装与卸载
- 环境变量
- 杂项
- Mock数据
- FeHelper
- git
- 反向代理
- 本地存储
- stylus
- 常用mixins
- jsonp
- 配置
- mock配置
- 跨域配置
- 自定义路径
- px2rem
- 代理后端请求
- 常用算法
- 字母排序城市数据
- 倒计时
- 通讯录数据结构
- 请求
- axios防止多次请求
- 封装axios请求
- axios使用
- 封装axios
- 插件
- BetterScroll
- 高德定位
- polyfill
- fastClick
- LazyLoad
- storageCache
- moment
- keyFrameAnimation
- vueSwiper
- 组件
- Loading组件
- header组件
- 仿有道App导航
- SupportIcon
- 仿饿了么购物车跳动
- 购物车小球缓动
- 小球飞入购物车
- 仿音乐歌手列表
- 唱片飞入效果
- 搜索组件
- 仿美团PC搜索框
- 页面布局
- stickyFooter
- 背景色渐变
- 背景虚化
- Ui组件
- CubeUi
- CreateApi
- tab滑屏切换
- 索引列表
- BScroll
- BScroll左右联动导航
- vant
- 函数库
- 常用Dom函数库
- axios封装
- 格式化音乐播放时长
- 搜索节流
- time格式化
- JS基础
- window对象中的高度
- JS中的宽高
- 常用正则
- nuxt
- nuxtVuex
- 监听页面滚动
- 监听body滚动
- 监听局部滚动