记录Vue混合App开发(转移)

UI设计


浏览:882 次

谢谢--->

1、 项目开始前的思考

1.浏览设计图纸和产品原型

2.需要共享功能

3.如何与Android和iOS原生方法竞争

4.如何调试嵌入APP的网页

5.移动屏幕适配

6.如果加载块xx失败怎么办

2、 建设项目

1.使用vue cli直接创建项目。vue路由器和vuex都很有用

2.目录划分

20190610163414775.jpg.png

Api-分离项目Api

资产-放置静态文件,如img、css和字体

组件-要放置组件文件,我创建一个全局文件夹来放置全局组件

Utils-工具插件或自封装插件

路线-项目的路线配置

存储-项目的vuex数据存储

视图-项目视图,可以根据项目模块细分为相应的目录

3.仍然需要公共css。得到一个公开。资产中的css并重置样式;css预处理使用scss

4.最常用的rem适配方案用于适配手机屏幕。动态计算的js使用adapte.js

5.使用公理请求数据。公理的拦截器可以做很多事情;

这是我的axis配置代码的副本

/**

*http配置

*/

从“Vue”导入Vue

从“axis”导入axis

从“@/router”导入路由器

从“@/store”导入存储

从“Qs”导入Q//序列化参数

//Axios默认配置

axios.defaults。超时=20000;//请求超时

axios.defaults。withCredentials=false;

axios.defaults.headers。post['Content-Type']='App/x-www-form-urlencoded';//设置请求标头

axios.defaults。baseURL=“/api”;//基本URL

//Http请求拦截器

axios.interceptors.请求.使用(

配置=>{

let方法=配置方法;

让TOKRN=store.state。access_令牌;

//判断是否显示加载

if(config.isLoading==true&!store.state.isLoading){

百货商店提交('updateLoadingStatus',true)

}

//在请求中,令牌是统一附加的,令牌是从vuex获取的

if(配置数据){

config.data。access_ token=TOKRN;

配置。data=Qs.stringify(配置数据);

}其他{

让url=配置url;

配置。url=(url.indexOf(“?”)!=-1)

? url+'&access_令牌='+TOKRN

:url+'?access_ token='+TOKRN

}

返回配置;

},

错误=>{

百货商店提交('updateLoadingStatus',false);

return Promise.reject(错误);

}

)

//Http响应拦截器

axios.interceptors.response.use(

响应=>{

让结果=响应.data;

让resCode=result.code;

//处理从后台返回的状态代码

开关(编号(resCode)){

案例9004:

//...

打破

案例12000:

打破

案例12001:

//无实名认证

打破

案例9000||9001||9002:

打破

违约:

打破

}

setTimeout(()=>{

if(store.state.isLoading){

百货商店提交('updateLoadingStatus',false);

}

}, 300);

返回response.data;

},

错误=>{

if(错误响应){

//请求中出错。请根据http状态码处理

开关(错误响应状态){

案例400:

安慰日志('服务400操作失败!')

打破

案例404:

//router.push({name:“404”})

安慰日志('服务404请求不存在!')

打破

案例408:

router.push({n