đşćťçťäşä¸äşĺ°ç¨ĺşĺźĺçťéŞďźĺ ćŹä¸äşĺˇĽĺ ˇăçťäťśăć塧çďźĺ ˇä˝ĺŚä¸ĺžć示đ
垎俥ĺ°ç¨ĺşĺźĺçťéŞ+
ćťçťäşä¸äşĺźĺ垎俥ĺ°ç¨ĺşčżç¨ä¸éĺ°éŽé˘ç解ĺłćšĺź/çťéŞĺ亍ďźĺŚĺ¤ĺ ąäşŤĺ 个éç¨çťäťś
# cache
为äťäšéčŚcacheĺˇĽĺ ˇďź
- 垎俥apićäžäşstorage, çąťäźź localStorage
ć°¸äš ć§ĺĺ¨?
(é¤ç¨ćˇä¸ťĺ¨ĺ é¤ćčś ä¸ĺŽćśé´č˘ŤčŞĺ¨ć¸ ç) - ĺ¸ćĺŻäťĽćäžçąťäźź sessionStorage ç樥ćďźĺ˝ćŹĄćĺźĺ°ç¨ĺş/çĺŻĺ¨ĺ (ćŹćŹĄä˝żç¨ćé´)ććďźĺˇĺŻĺ¨ć¸ çďź
- ĺ¸ćć个çźĺä¸ĺŽćśé´ĺ ććďźçąťäźź expire cookie
- ĺŻäťĽć´ć°expireçźĺďźä˝ä¸ćšĺĺ śčżććśé´
import $cache, * as caches from 'path/to/./libs/cache.js'
// localstorage
$cache.set('key', 1)
$cache.get('key') // 1
// localstorage expire
$cache.set('key', 1, 10000)
$cache.get('key') // 1, 10sĺ
莿éŽćć
// localstorage ĺťśçťä¸ćŹĄçźĺćśé´ďźčĽä¸ćŹĄć˛Ąçźĺďźć¤ćŹĄčŽžç˝Žäšĺ°ĺćś
$cache.set('key', 1, true)
$cache.get('key') // 1
// sessionstorage
$cache.session.set('key', 1)
$cache.session.get('key') // 1
// remove
$cache.remove('key')
$cache.session.remove('key')
# PageModal
衯çąéĄľé˘é´çç¸äşé俥ďźé塲ĺĺ¨čˇŻçąĺĺ˛čŽ°ĺ˝ä¸ç衯çąďź : App ĺˇ˛ćł¨ĺ Ľ pages: new PageModal()
// page A
Page({
data: {
log: 'ori log content'
},
//..
changeLog () {
this.setData({ log: 'log changed.' })
},
onLoad() {
// 饾é˘ć , 坺莎ďźäť
éčŚé俥ç饾é˘ĺ ĺ
Ľć ä¸
getApp().pages.add(this)
},
onUnload() {
// 饾é˘ĺ¸č˝˝ĺ
łé
getApp().pages.delete(this)
}
})
// page B
Page({
//...
doSomething() {
// ..
// č°čľˇ page A / changeLog
getApp().pages.get('path/to/A').changeLog()
},
})
# page decorator
Page čŁ éĽ°ĺ¨ĺŽäžďźĺŻćŠĺąä¸şmixin ďźçťäťśĺˇ˛ćäžbehaviorsďźä¸ĺż čŚćśä¸ç¨mixinďź : App 塲ĺźç¨ import 'libs/pageDecorator.js'
// Page čŁ
鼰ĺ¨ĺŽäž pageDecorator.js
const oriPage = Page
export default Page = (data) => {
// PVçťčŽĄ
const onLoad = data.onLoad;
data.onLoad = function(...args) {
RecordPV.call(this)
// do something before oriPage onLoad
// ..
return onLoad && onLoad.call(this, ...args)
}
oriPage(data)
}
// Record PV
function RecordPV() {
console.log('view the page : ', this.route)
// sync serve..
// fetch(apis.pv, data: { page: this.route })
}
# fetch
ĺ°čŁ
诡ćąďźapi樥ĺĺ
; tip: çŽçĺŞćŻä¸şäşçŽĺwx.requestďźçťä¸ä˝é¨ĺrule codećŚćŞďźäťĽĺerrorĺ¤ç;
ĺ ä¸ĺĄĺşćŻä¸ĺďźĺˇ˛ĺćś promiseéŁć źĺăéčŻćşĺśăauth诡ćąĺ éă诡ćąĺćśç
// req
import fetch, { apis } from 'path/to/./core/fetch.js'
Page({
req () {
fetch({
...apis.order.getOrderList,
data: {
page: 1,
page_size: 10
},
succ: (res) => {
console.log(res)
},
fail: (err) => {
console.log(err)
},
done: () => {
console.log('done')
}
})
}
})
# utils
Event | Description |
---|---|
typeOf() |
çąťĺ |
throttle() |
čćľ |
formatDate() |
ć źĺźĺćĽć |
numberCal |
澎çščŽĄçŽ |
pick() |
ĺ¤ĺśé¨ĺĺąć§ |
# ĺ莥ćśçťäťś
ćäžçŽćĺ莥ćśĺč˝
Props | Type | Description |
---|---|---|
time |
Number |
ćśé´ďźç§ďź |
format |
String |
ć źĺźĺćžç¤şďź éťčŽ¤ďźdd夊hhćśmmĺssç§ |
timeStyle |
String |
ćśé´styleć ˇĺźďźéťčŽ¤ďź '' (::font/color çĺŻçť§ćżçśçş§ďźä¸čŹä¸ç¨é 罎) |
symbolStyle |
String |
ćśé´symbolć ˇĺźďźéťčŽ¤ďź'' (::font/color çĺŻçť§ćżçśçş§ďźä¸čŹä¸ç¨é 罎) |
sign |
String |
ĺćśä˝żç¨ĺ¤ä¸Ş countdown çťäťśćśďźéčŚ sign ć 注ĺŻä¸ďźéçĽćśäźĺäź sign |
Event | Description |
---|---|
running() |
ĺ莥ćśčżčĄä¸, čżĺďź{ sign, time }// time: ĺŽćśčŽĄćś(s) |
end() |
ĺ莥ćśçťćĺć§čĄďźčżĺ:{ sign } |
# 级čéćŠçťäťś
ćäžĺźšçŞĺ˝˘ĺźcascader
Props | Type | Description |
---|---|---|
display |
Boolean |
ćžç¤ş/éč |
options |
Object |
ćşć°ćŽ |
props |
Object |
ĺŻé 罎 级č ĺąć§ĺďź éťčŽ¤ďź{ label: 'label', value: 'value', children: 'children' } |
_default |
Array |
ĺŻčŽžç˝ŽéťčŽ¤éćŠéĄšďź éťčŽ¤ [] |
Event | Description |
---|---|
close() |
éćŠĺ¨ĺ łé觌ĺ |
* close
* @return
* {
* type: 'cancel', // cancel: ĺćśéćŠ/çšĺťéŽç˝Šĺąďź submit: 祎莤
* valueIns: [], // čżĺ塲éćŠçä¸ć ďź(桹庌ĺąçş§)
* valueArr: [], // čżĺ塲éćŠçä¸ć ĺŻšĺş option ĺ
厚
* }
# čŞĺŽäšnavigationBar
çťäťśä¸şčŞĺŽäšnavigationBarĺŽäžďźćć ĺ¤ćé
罎ďźé常äšä¸ĺťşčŽŽĺ¨navigationBarĺčżĺ¤ä¸ĺĄ/UIďź
ćäžäşä¸ç§ć¨ĄĺźĺčďźčŞĺŽäšĺçš
樥ć垎俥ĺé
樥ć垎俥čĺ
ĺŻäžćŽčŞčşŤä¸ĺĄčŞčĄĺŽäšă
ć示ďźçŽĺ(19/5/13ĺ)čˇĺčĺä˝ç˝Žapi ĺźĺ塼ĺ
ˇä¸çćşçťćć塎ĺŤďźćł¨ćč°čŻ;
čŞĺŽäšĺçš
樥ć垎俥ĺé
樥ć垎俥čĺ
Props | Description |
---|---|
background |
čćŻč˛ |
barčˇéćťĺ¨ćˇĄĺşĺŽäž.
# é˘ćŁććçťäťś && WxAuth
ćĺćŁćĽććçśćďź(塲)ććĺĺ°ĺŽćĺććä˝
- 解ĺłčˇĺćéĺşćŻ
- ćććĺĺč°
- çťäťśéťčŽ¤ĺźşĺśćć睧çťćä˝ďźĺŻĺ¨ĺşçĄä¸äźĺćščżç¨ćˇä˝éŞ
- éčŚé ĺWxAuth楼ćĽçťäťśďźčŻŚçťćĽçdemo
Props | Type | Description |
---|---|---|
display |
Boolean |
ćžç¤ş/éčďźćäžčŻĽĺąć§äť ç¨ä¸WxAuthć§ĺśćžéçťäťś |
scope |
String |
垎俥scopećéĺźďź ĺŚďźscope.userLocation |
Event | Description |
---|---|
success() |
ćććĺ: { scope, [result: { detail, [code] }] } |
detail: userinfo / userPhone ćśäźčżĺdetailäżĄćŻ code: login code(session čżććäźéć°čˇĺ)
// Mng
const recorderMng = wx.getRecorderManager()
// ĺ˝éł
record() {
// ćŁćĽćć
this.wxa.checkScope({
scope: 'scope.record',
done() {
console.log('finish record auth,');
// ç°ĺ¨ĺŻäťĽç¨ recorderMng api ĺŻ
// recorderMng.start({
// duration: 60000,
// format: 'mp3'
// })
}
})
}
# çć澡ćĽçťäťś
é 罎çć澡ćĽ
- ćšäžżĺ獯é 罎çćçŽĺ澡ćĽ
- ćäž
Block
Image
Text
ä¸ç§ć¨Ąĺź, 䝼ĺColor
纯č˛ăć¸ĺç樥ĺźé 罎 - config => canvas => image
- çťäťśĺąć§ĺźčžĺ¤ďźčŻŚçťConfigćĽççťäťśĺ 注éć楣
- ćä¸ćŻććŹĺ°ĺžç
- çćşćä¸ćŻćčŞĺŽäšĺä˝
Props
Props | Type | Description |
---|---|---|
config | Object |
Configé 罎, 诌çťč§ä¸čĄ¨ |
autoMake | Boolean |
čŞĺ¨çć ? çšĺťslotçć |
Config
Config | Type | Description |
---|---|---|
width | Number |
çťĺ¸ĺŽ˝ĺşŚ |
height | Number |
çťĺ¸éŤĺşŚ |
bgColor | String Object |
çťĺ¸čćŻč˛ Color |
block | Array |
ĺ ä˝é 罎 [...Block] |
image | Array |
ĺžçé 罎 [...Image] |
text | Array |
ćĺé 罎 [...Text] |
Module
Module | Type | Description |
---|---|---|
Block | Object |
ĺ ä˝é 罎(ć楣) |
Image | Object |
ĺžçé 罎(ć楣) |
Text | Object |
ćĺé 罎(ć楣) |
Color | String Object |
é˘č˛ć¨ĄĺźďźçşŻč˛ăć¸ĺç |
çšĺťçć澡ćĽĺŽäž.