项目从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、搭建项目需要的模块,比如登录模块,首页模块等等

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值