构建项目//pc端、移动端H5

vue-cli
安装 ui 库(eg:pc端用element ui、移动端用 vuex)

移动端

vux
github地址

pc端

elementUI
饿了么github地址
vue-admin-template
PanJiaChen/vue-element-admin

构建项目

vue前端开发项目框架搭建(node+webpack+vue)

Vue项目环境搭建总结

前端框架搭建-搭建vue环境(学习笔记)

其它:
vue-cli 3.x搭建项目以及其中vue.config.js文件的配置
Vue 创建项目后没有 webpack.config.js(vue.config.js) 文件
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名
Vue vue-config.js(字段属性详细介绍)

我的步骤

由于本机已有 nodejs、npm、vue-cli等,所以直接创建项目即可

示例一:vue init webpack 文件名

vue init webpack 文件名
在这里插入图片描述

示例二:vue create 文件名

参考:超级详细的Vue-cli3使用教程

vue create 文件名

? Please pick a preset: Manually select features
? Check the features needed for your project: (Press <space> to select, <a> to toggle all, <i> to invert selection)
>( ) Babel                              //  代码编译
 ( ) TypeScript                         //  ts
 ( ) Progressive Web App (PWA) Support  //  支持渐进式网页应用程序
 ( ) Router                             //  vue路由
 ( ) Vuex                               //  状态管理模式
 ( ) CSS Pre-processors                 //  css预处理
 ( ) Linter / Formatter                 //  代码风格、格式校验
 ( ) Unit Testing                       //  单元测试
 ( ) E2E Testing                        //  端对端测试

一般项目开发只需要选择Babel、Router、Vuex就足够了。

vue.config.js 配置

module.exports = {
   
  devServer: {
   
    // 端口号
    port: 8080,
    // 配置不同的后台API地址
    proxy: {
   
      '/api': {
   
        target: 'http://www.dzm.com',
        ws: false,
        changeOrigin: true,
        pathRewrite: {
   
          '^/api': ''
        }
      }
    }
  }
}

ui框架包

element-ui官网:http://element-cn.eleme.io/#/zh-CN/component/installation

npm 安装

npm i element-ui -S

完整引入
在 main.js 中写入以下内容:

import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue';

Vue.use(ElementUI);

new Vue({
   
  el: '#app',
  render: h => h(App)
});

安装异步编程框架axios

axios中文文档|axios中文网:http://www.axios-js.com/zh-cn/docs/
vue项目中axios拦截器的使用和配置

  • 安装_使用 npm:
npm install axios
  • src/utils/request.js 中引入 axios
import axios from 'axios'

创建 axios 实例

const service = axios.create({
   
  baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
  // withCredentials: true, // send cookies when cross-domain requests
  timeout: 5000 // request timeout
})

配置请求拦截器
service.interceptors.request.use({})

// request interceptor
service.interceptors.request.use(
  config => {
   
    // do something before request is sent

    if (store.getters.token) {
   
      // let each request carry token
      // ['X-Token'] is a custom headers key
      // please modify it according to the actual situation
      config.headers['X-Token'] = getToken()
    }
    return config
  },
  error => {
   
    // do something with request error
    console.log(error) // for debug
    return Promise.reject(error)
  }
)

配置响应拦截器
service.interceptors.response.use({})

// response interceptor
service.interceptors.response.use(
  response => {
   
    const res = response.data

    // if the custom code is not 20000, it is judged as an error.
    if (res.code !== 20000) {
   
      Message({
   
        message: res.message || 'Error',
        type: 'error',
        duration: 5 * 1000
      })

      // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
      if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
   
        // to re-login
        MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', {
   
          confirmButtonText: 'Re-Login',
          cancelButtonText: 'Cancel',
          type: 'warning'
        }).then(() => {
   
          store.dispatch('user/resetToken').then(() => {
   
            location.reload()
          })
        })
      }
      return Promise.reject(new Error(res.message || 'Error'))
    } else {
   
      return res
    }
  },
  error => {
   
    console.log('err' + error) // for debug
    Message({
   
      message: error.message,
      type: 'error',
      duration
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值