一觉壶,API Promise
!函數(shù)](https://upload-images.jianshu.io/upload_images/24559446-a2aa9e94f520a862.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
默認(rèn)小程序官方提供的異步API都是基于回調(diào)函數(shù)實(shí)現(xiàn)的.
缺點(diǎn):容易造成回調(diào)地獄(:在回調(diào)函數(shù)中再嵌套回調(diào)函數(shù)的情況稱為回調(diào)地獄),維護(hù)性可讀性差
API Promise化:通過額外的配置,將官方提供的異步API升級為基于Promise的異步API
1.1實(shí)現(xiàn)API Promise化
npm i --save miniprogram-api-promise@1.0.4
然后構(gòu)建npm
下一步就需要將promise這個(gè)API引用在全局(也就是app.js),這樣調(diào)用一次就可以了
調(diào)用
async getInfo() {
const {data: res} = await wx.p.request({
url: 'https://www.escook.cn/api/get',
method: 'GET',
data: {
name: 'Cherry',
age: 16
}
})
console.log(res) // 返回值是 Promise {<pending>} 對象
//pending就是等待中的意思 待支付這些
},
async 用于申明一個(gè) function 是異步的序厉,而 await 用于等待一個(gè)異步方法執(zhí)行完成
二啃炸、全局?jǐn)?shù)據(jù)共享
全局?jǐn)?shù)據(jù)共享:又叫 狀態(tài)管理,是為了解決 組件之間數(shù)據(jù)共享 的問題。
小程序: mobx-miniprogram 配合 mobx-miniprogram-bindings
- mobx-miniprogram:創(chuàng)建 Store 實(shí)例對象
- mobx-miniprogram-bindings:用來把 Store 中的共享數(shù)據(jù)或方法綁定到組件或頁面中使用
2.1安裝MobX包
npm install --save mobx-miniprogram@4.13.2 mobx-miniprogram-bindings@1.2.1
注意:MobX 相關(guān)的包安裝完畢之后沈撞,記得刪除 miniprogram_npm,重新 構(gòu)建npm
頁面使用導(dǎo)入crateStoreBindings
,組件導(dǎo)入用storeBindingsBehavior
三雕什,分包
把一個(gè)完整的小程序項(xiàng)目按照需求劃分成不同的子包,構(gòu)建打包打包成不同的包,用戶可以按需加載.可以優(yōu)化小程序首次加載的啟動(dòng)時(shí)間
訪問那個(gè)模塊就去下載對應(yīng)的模塊
整個(gè)小程序:不超過 16 M
單個(gè)分包/主包:不超過 2 M
在app.json中
"subpackages":{
"root":"packageA"http://第一個(gè)分包的根目錄
"name":"p1",//分包的名字
"pages":[
]//當(dāng)前分包的所有頁面的相對路徑
}
沒寫到這里的默認(rèn)會(huì)被分配到主包進(jìn)行渲染的
獨(dú)立分包:
"independent": true
不用下載主包就可以獨(dú)立運(yùn)行
引用原則:
- 主包無法引用分包內(nèi)的私有資源
- 分包之間缠俺,不能相互引用私有資源
- 分包可以引用主包的公共資源
- 包無法引用獨(dú)立分包內(nèi)的私有資源
- 獨(dú)立分包之間,不能相互引用私有資源
- 獨(dú)立分包和普通分包之間贷岸,不能相互引用私有資源
- 特別注意:獨(dú)立分包中不能引用主包內(nèi)的公共資源
分包預(yù)下載
"preloadRule":{
"page/message/message":{
"packages":["p1"],
"network":"wifi"
}
}