使用 vue-cli2.0脚手架搭建项目+代理+vuex+elementUI+less

1. 脚手架搭建教程

2. 使用 Vuex
在这里插入图片描述
新建 store.js 利用 Vuex.state进行存储

import Vue from 'vue'
import vuex from 'vuex'

Vue.use(vuex)

export const store = new vuex.Store({
  state: {
    name: '十七岁'
  }
})

之后在main.js 中进行实例化

import { store } from '路径'
Vue.use(store)    // 实例化

在页面级别通过 this.$store.state.name 对该变量进行更改、获取

3. 利用axios 进行跨域函数封装

import axios from 'axios'
import { stringify } from 'qs'
axios.defaults.timeout = 5000
let debug = true
let baseUrl = debug ? 'http://192.168.37.173:3000/mock/23/api' : '正式地址'
axios.interceptors.request.use(
  config => {
    console.log(config)
    config.method === 'POST'
      ? config.data = stringify(...config.data)
      : config.params = config.params
    config.headers['Content-type'] = 'application/json'
    return config
  },
  err => {
    console.log('失败')
    console.log(err)
  })

axios.interceptors.response.use(
  response => {
    return response
  },
  err => {
    setTimeout(() => {
      this.fullscreenLoading = false
    }, 2000)
    if (err && err.response) {
      switch (err.response.status) {
        case 400: err.message = '请求错误(400)'; break
        case 401: err.message = '未授权,请重新登录(401)'; break
        case 403: err.message = '拒绝访问(403)'; break
        case 404: err.message = '请求出错(404)'; break
        case 408: err.message = '请求超时(408)'; break
        case 500: err.message = '服务器错误(500)'; break
        case 501: err.message = '服务未实现(501)'; break
        case 502: err.message = '网络错误(502)'; break
        case 503: err.message = '服务不可用(503)'; break
        case 504: err.message = '网络超时(504)'; break
        case 505: err.message = 'HTTP版本不受支持(505)'; break
        default: err.message = `连接出错(${err.response.status})!`
      }
    } else {
      err.message = '连接服务器失败!'
    }
    return Promise.reject(err)
  }
)

export function Http (url, params = {}, method) {
  return new Promise((resolve, reject) => {
    axios({
      url: `${url}`,
      method,
      data: params,
      headers: {
        contentType: 'application/json'
      }
    })
      .then((res) => {
        if (res.data.code == '0') {
          resolve(res)
        } else {
          console.log('进行错误处理')
        }
      })
      .catch((err) => {
        reject(err)
      })
  })
}

页面级别通过 import { Http } from ‘路径’ 对该函数进行调用

4. 引入 less
新起一个文件夹用于存放 .less文件 然后引入到相关页面 前提是已经npm了 less、less-loader

5. 新建页面、配置路由

components文件夹新建文件, 之后再 router/index.js 进行配置
在这里插入图片描述
然后通过 this.$router.push(‘路径’) 就可以实现跳转

6. 配置代理
路径在 config/index.js 中 对 proxyTable 进行配置

proxyTable: {
 '/api': {
    target: 'www.baidu.com',
    changeOrigin: true,
    pathRewrite: {
      '^/api': ''
    }
  }
}

假如你的路径是 www.baidu.com/getName/fe 调用接口的时候就可以写成

/api/getName/fe 

这样就可以自动代理到请求的路径了

7. 引入 UI 组件
下载 cnpm install element-ui --save
引入 在main.js中
在这里插入图片描述

8. 如何使用插件
同样道理 npm 下载下来 然后再main 中进行实例化 然后再页面级别通过 import 进行引入就可以使用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值