常用功能


本文是在工作中收集到实用并且常用的功能,仅供学习参考使用

1. 数组去重
/***
*@desc: 数组去重
*/
const array = [' ', 1,  2, ' ',' ', 3];// 1: "Set"
[...new Set(array)];// 2: "Filter"
array.filter((item, index) => array.indexOf(item) === index);// 3: "Reduce"
array.reduce((unique, item) => 
  unique.includes(item) ? unique : [...unique, item], []);
​
​
// RESULT:
// [' ', 1, 2, 3];
2. axios封装
import axios from 'axios'
import { Message } from 'element-ui'
// 创建axios实例
const service = axios.create({
  baseURL: process.env.BASE_API, // api 的 base_url
  timeout: 5000 // 请求超时时间
})

// request拦截器
service.interceptors.request.use(
  config => {
    // 根据具体实际情况,判断是否有 token ,如若没有 token,就去获取 token
    if (store.getters.token) {
      config.headers['X-Token'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
    }
    return config
  },
  error => {
    // Do something with request error
    console.log(error) // for debug
    Promise.reject(error)
  }
)

// response 拦截器
service.interceptors.response.use(
  response => {
    /**
     * code为非0是抛错 可结合自己业务进行修改
     */
    const res = response.data
    // 至于其他状态码需要处理的,可以以此类推进行处理,本文不过多讲解
    if (res.code !== 0) {
      // Message
      Message({
        message: res.message,
        type: 'error',
        duration: 5 * 1000
      })
      return Promise.reject('error')
    } else {
      return response.data
    }
  },
  error => {
    console.log('err' + error) // for debug
    Message({
      message: error.message,
      type: 'error',
      duration: 5 * 1000
    })
    return Promise.reject(error)
  }
)

文章作者: Robyn
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Robyn !
评论
 上一篇
vuecli4.x多页面配置 vuecli4.x多页面配置
此篇文章教你手把手撸一个多页面的vue脚手架 1. 安装脚手架以及创建相应的项目来自官网的引用: npm install -g @vue/cli # OR yarn global add @vue/cli 你可以用以下命令查看自己的脚手架
2020-04-22
下一篇 
CSS鼠标悬浮之后整个框浮起来的效果 CSS鼠标悬浮之后整个框浮起来的效果
.productsShow>li { -webkit-transition: .6s; transition: .6s; } .productsShow>li:hover { -webkit-transform: tr
2020-04-17
  目录