1.美團工程師推出的基於Vue.js封裝的用於開發小程序的框架
2.融合了原生小程序和Vue.js的特色
3.可徹底組件化開發css
1.組件化開發
2.完成的Vue.js開發體驗(前提是熟悉Vue)
3.可以使用Vuex管理狀態
4.Webpack構建項目
5.最終H5轉換工具將項目編譯成小程序識別的文件vue
1.npm install vue-cli -g 下載vue腳手架
2.vue init mpvue/mpvue-quickstart my-project 初始化項目
3.cd my-project 進入項目根目錄
4.npm install 根據package.json安裝項目依賴包
5.npm start || npm run dev 啓動初始化項目webpack
1.src/app.json 全局配置文件
2.src/App.vue 等同於原生小程序中的app.js, 可再次寫小程序應用實例的聲明週期 函數 || 全局樣式(style中編寫)
3.main.js應用入口文件, 聲明組件類型,掛載組件ios
import Vue from 'vue'
import App from './App.vue'
// Vue.config.productionTip = false 默認爲false,用於啓動項目的時候提示信息,設置爲false關閉提示
Vue.config.productionTip = true
// 這個值是爲了與後面要講的小程序頁面組件所區分開來,由於小程序頁面組件和這個App.vue組件的寫法和引入方式是一致的,爲了區分二者,須要設置mpType值
App.mpType = 'app'
// 生成Vue實例
const app = new Vue(App)
// 掛載組件
app.$mount()git
頁面須要文件介紹github
import Vue from 'vue'
import Index from './index.vue'
const index = new Vue(Index)
index.$mount()web
{
"navigationBarTitleText": "主頁",
"navigationBarBackgroundColor": "#8ed145"
}vue-router
1.在每一個組件中都須要使用: 組件實例.$mount() 去掛載當前組件,不然對應的頁面不能生效
2.npm run dev 每次會從新打包dist文件,測試只能在小程序工具上
3.mpvue中綁定小程序原生事件不能使用bind + 事件名,須要使用@事件名 且要定義在methods中不然不生效
4.新建立的頁面須要從新執行: npm run dev才能將新的頁面打包到dist文件中vuex
**vue實例聲明週期**
8.destroyed Vue 實例銷燬後調用。調用後,Vue 實例指示的全部東西都會解綁定,全部的事件監聽器會被移除,全部的子實例也會被銷燬。 該鉤子在服務器端渲染期間不被調用。vue-cli
後臺
除了 Vue 自己的生命週期外,mpvue 還兼容了小程序生命週期,這部分生命週期鉤子的來源於微信小程序的 Page, 除特殊狀況外,不建議使用小程序的生命週期鉤子。
vue-router
(1)wx.navigateTo() 保留當前頁面,可回退
(2)wx.redirectTo() 不保留,不能回退
(3)wx.switchTab() 使用於tabBar頁面
axios
gitHub地址
https://github.com/wendux/fly
使用步驟
1)下載: npm install flyio
2)引入: import Fly from ‘flyio/dist/npm/wx’ 注意flyio支持不少環境下使用
3)生成實例: let fly = new Fly
4)配置: Vue.prototype.$fly = fly
5)使用: 組件中 this.$fly.get()
**原生小程序**
1)在data中初始化狀態數據
2)修改狀態: this.setData({key: value})
3)頁面公共狀態:
a.App程序實例的data中定義
b.獲取狀態數據: let datas = getApp()
c.修改狀態數據: datas.data.xxx = value
4)或者利用storage本地存儲
Mpvue
1)在組件中經過getApp沒法拿到對應的數據
2)mpvue中支持vuex,因此可使用vuex集中管理狀態
3)vuex幾個重要的概念:
a.store對象
b.dispatch() 分發狀態
c.actions 攜帶參與修改狀態的數據,並觸發mutations
d.mutations用於修改狀態,並將狀態交給store對象
e.getter 用於動態計算狀態
1)原生小程序運行更穩定些, 兼容性好,mpvue可能在某些方面存在兼容性問題(vue-router)2)mpvue支持vue組件化開發. 效率更高,功能更強大(雙向數據綁定, vuex)3)mpvue可基於webpack組件化, 工程化開發4)原生不支持npm安裝包,不支持css預處理5)支持 computed 計算屬性和 watcher 監聽器;模板語法中只支持簡單的 js 表達式。能夠直接寫 div 、span 等標籤 computed 的寫法6)以前會vue的工程師上手mpvue框架的成本較低