mpvue專案裡做api與資料分離統一管理
小程式裡請求資料介面使用wx:request,因為考慮專案比較大,最好把wx:request封裝起來,統一使用管理
utils.js 配置開發環境和線上環境介面
let util = {};
const ajaxurl = process.env.node_env === 'development'
// 測試介面位址
? 'code.net.cn/api'
// 線上介面位址
: '';
util.api = ajaxurl;
util.oauthurl = ajaxurl;
export default util;
fetch.js 暴露封裝請求介面方法import utils from '../utils/utils'
import store from '../vuex/index'
export async function request(obj) );
}wx.request(,
method: obj.method,
success(res)
store.commit('setshowing', false);
resolve(res.data.data)
},fail(e)
})})
}// 處理new token
function handlenewtoken(res)
}// 統一顯示toast
function showtoast(message) );
store.commit('setshowing', true);
}/**
* 處理code資訊
* @param res
*/function handleresult(res) );
break;
case 422 :
let errors = '';
for (var key in res.data.errors) )
}errors = errors ? errors : '提交的資訊錯誤,請檢查!';
showtoast(errors);
break;
default:
let msg = res.data.message ? res.data.message : '未知錯誤,請重試!';
showtoast(msg);
}}
統一在vuex裡面做資料請求介面
比如訂單介面
import from "../../api/fetch";
const state =
const mutations =
}const actions =
*/async createorder(, params) );
return res;
},/**
* 獲取訂單詳情
* @param commit
* @param id 訂單id
* @returns
*/async getorderdetail(, id)
})return res;
},/**
* 獲取訂單列表
* @param commit
* @returns
*/async getorderlist()
})commit('setorderlist', res);
return res;
}}export default
現在已經介面api與請求資料分開統一處理,在頁面僅僅需要呼叫就可以使用資料了
在這稍微說一下個人觀點,async/await和promise非同步,我這次專案有同時使用promise和async/await,兩個有不同的優缺點,promise的**機制async/await好,缺點就是寫很多then**,async/await的寫法與同步寫起來很相似,寫起**來也整潔,易理解。建議大家在不同的場景下使用它們的各自優缺點。 小程式開發筆記(mpvue)
1.打包的時候要注意檔案不能過大,單個不超過2m,整體不超過8m 但是實際打包後的vendor會很大。解決方案 引入uglifyjs外掛程式 修改build目錄下 的webpack.dev.conf.js配置檔案,前面新增外掛程式的引入,var uglifyjsplugin require ugli...
MPVue開發小程式使用axios
1.安裝axios npm install axios 2.找到以下路徑中檔案路徑 node modules axios dist axios.js注釋 塊 axios.all function all promises 3.使用axios的自定義請求adapter axios.defaults.a...
使用mpvue開發小程式教程(二)
在visual studio code裡面開啟專案資料夾,我們可以看到類似如下的檔案結構 package.json project.config.json static src components pages utils main.js config index.js dev.env.js pro...