.....最近在寫一個微信小程序項目,在看完官方微信小程序開發文檔後,有一種直接想「放棄」的念頭;
.....使用微信小程序原生框架能夠快速,方便,簡潔的搭建項目,同時微信提供了新的一套‘語義化’標記語言wxml,以及獨立出來的wxss樣式表,而且js的交互邏輯支持ES6的語法,包括使用Promise等;除去框架自己以外,小程序還提供了一些經常使用的組件,包括Picker,slider,canvas,form表單等,能極大的提升開發者的效率,豐富的API徹底能知足工做需求,若是你在沒有接觸相似 VUE 等MVVM主流前端框架以前,微信小程序原生框架無疑是最佳選擇;
......可是,使用過vue後,你會發現小程序原生框架的數據綁定方式很是「臃腫」,代碼編寫不優雅簡潔,語義化標籤以及豐富的屬性設置會大大增長學習成本,另外一方面微信小程序開發者工具的IDE表現也老是差強人意,反應遲鈍,wxml,wxss,js之間來回切換不流暢,致使開發效率低下......
......因爲以上種種,我開始尋找新的框架編寫小程序項目,首先找到的框架是圈內較熱門的wepy,其次就是最近才發佈的mpvue;javascript
......wepy 是騰訊開源的一套語法接近vue.js,快速開發小程序的框架,開源的較早,網上有不少資源,也有一些大廠使用。可想而知,原生小程序框架在設計上仍是有必定的缺陷
......mpvue也就是今天要介紹的主角,是美團開源的一套快速開發小程序的前端框架,__按官網說能夠實現小程序與H5界面使用一套代碼,mpvue 繼承自 Vue.js。而且,其技術規範和語法特色與 Vue.js 保持一致。_對毫無小程序開發經驗的同窗來講無疑是大大的福利。mpvue官網_前端
值得注意的是,mpvue提供vuex進行數據狀態管理,能知足複雜應用狀態管理需求,這是其餘框架都不具有的!
vue
npm run dev
安裝mpvue項目利用vue-cli腳手架工具,選擇了對應的mpvue的模板,在安裝過程當中,cli腳手架工具會提醒您是否須要安裝Vuex,,我建議您根據項目需求確認是否添加該配置,由於這裏安裝Vuex,工具根據vue模板會幫你自動搭建依賴關係而且轉義後兼容小程序,若是您想在項目開發中添加Vux就要注意了,在安裝過程當中極有可能報錯,因爲mpvue開源時間較短,參考資料也頗有限,爲了不沒必要要的麻煩,建議在搭建項目時就安裝Vuex。java
這是生命週期的調用關係和順序圖。webpack
mpvue團隊建議開發者在mpvue中儘量的不使用小程序的生命週期,實際工做中使用小程序的生命週期鉤子函數也無大礙,有的程序員爲了減小頁面初始化時儘快的請求到服務器端的數據,故意將ajax請求寫在onShow鉤子函數裏,而不是vue 的 mounted函數裏;
咱們來看看這樣一個需求,下圖所示的頁面程序員
在mpvue中沒有繼續延用vue路由的寫法,而是繼承小程序的一套解決方案,在工做中咱們常常經過路由來傳遞參數,好比下面代碼所示:web
//在index頁面,咱們想跳轉到apply頁面,並傳遞id參數 let id = 10 const url = '/pages/apply/main?id=' + id wx.navigateTo({ url})
小程序方法獲取idajax
// 在apply.vue頁面中 onLoad (options) { let id = options.id } //注意:必須是在onLoad鉤子函數日後的生命週期中獲取 onShow (options) { let id = options.id }