項目從0開發的流程

開發一個項目,首先我們要看項目開發的文檔,有哪些要求。

文章目錄


1、創建項目
vue create 項目名
根據vue腳手架快速搭建項目,好用又便捷
2、根據項目要求安裝axios vant-ui element-ui
vant-ui應了當前客戶的審美觀
3、封裝axios、和api接口 。
在根目錄下創建文件分別是:
.env.development







NODE_ENV='development'
# must start with VUE_APP_
VUE_APP_ENV = 'development'

.env.production

 NODE_ENV='production'
# must start with VUE_APP_
VUE_APP_ENV = 'production'

.env.staging

NODE_ENV='staging'
# must start with VUE_APP_
VUE_APP_ENV = 'staging'

在項目的src文件裏面創建env文件
在這裏插入圖片描述
env.development.js中搭配生產環境

//生產環境
module.exports = {
   
   
  title: 'vue-h5-template',
  baseUrl: 'https://www.365msmk.com/api/app', // 項目地址
  baseApi: 'https://test.xxx.com/api', // 本地api請求地址
  APPID: 'xxx',
  APPSECRET: 'xxx'
}

env.production.js中搭配開發環境

//開發環境
module.exports = {
   
   
  title: 'vue-h5-template',
  baseUrl: 'https://www.365msmk.com', // 項目地址
  baseApi: 'https://test.xxx.com/api', // 本地api請求地址
  APPID: 'xxx',
  APPSECRET: 'xxx'
}

env.staging.js搭配測試環境

//測試環境
module.exports = {
   
   
  title: 'vue-h5-template',
  baseUrl: 'http://localhost:staging.9018', // 項目地址
  baseApi: 'https://test.xxx.com/api', // 本地api請求地址
  APPID: 'xxx',
  APPSECRET: 'xxx'
}

index.js中配置

// 根據環境引入不同配置 process.env.NODE_ENV
const config = require('./env.' + process.env.VUE_APP_ENV)
module.exports = config

創建一個network文件
在這裏插入圖片描述
在config.js中統一管理接口

//配置接口
export const METHOD = {
   
   
  GET: "get",
  POST: "post",
  PUT: "put",
};

export const PATH = {
   
   
  login: "/login",
};

在core.js中創建axios實例並添加請求攔截器

import axios from "axios";
import {
   
   
  METHOD
} from "./config";
import {
   
   
  Toast
} from "vant";
import {
   
   
  baseUrl
} from "@/config";

console.log(baseUrl);
const instance = axios.create({
   
   
  baseURL: baseUrl,
  timeout: 5000,
});

// let loading = null;
// 添加請求攔截器
instance.interceptors.request.use(
  function (config) {
   
   
    config.headers['Authorization'] = 'Bearer' + localStorage.getItem('token')
    Toast.loading({
   
   
      message: "加載中...",
      forbidClick: true,
      loadingType: "spinner",
    });
    return config;
  },
  function (error) {
   
   
    // 對請求錯誤做些什麼
    return Promise.reject(error);
  }
);

// 添加響應攔截器
instance.interceptors.response.use(
  function (response) {
   
   
    // 對響應數據做點什麼
    // loading.close()
    // if (response.data.msg === "無效token") {
   
   
    //   router.push({
   
   
    //     name: "login",
    //   });
    // }
    return response;
  },
  function (error) {
   
   
    // 對響應錯誤做點什麼
    return Promise.reject(error);
  }
);

export function request(method, url, parmas) {
   
   
  switch (method) {
   
   
    case METHOD.GET:
      return GET(url, parmas);
    case METHOD.POST:
      return POST(url, parmas);
    case METHOD.PUT:
      return PUT(url, parmas);
  }
}
function GET(url, params) {
   
   
  return instance.get(url, params);
}

function POST(url, params) {
   
   
  return instance.post(url, params);
}

function PUT(url, params) {
   
   
  return instance.put(url, params);
}

在index.js中引入config.js和core.js

import {
   
    METHOD, PATH } from "./config";
import {
   
    request } from "./core";

const APIClient = {
   
   
  install(Vue) {
   
   
    Vue.prototype.$API = this;
  },
  getBanner(params) {
   
   
    return request(METHOD.GET, PATH.getBanner, params);
  },
 login(data) {
   
   
    return request(METHOD.POST, PATH.login,data);
  },
};
export default APIClient;

4、搭建項目需要的模塊,比如登錄模塊,首頁模塊等等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章