1核芽、事件綁定和冒泡
事件綁定的寫法同組件的屬性,以 key窿锉、value 的形式酌摇。
- key 以
bind
或catch
開頭,然后跟上事件的類型嗡载,如bindtap
窑多、catchtouchstart
。自基礎(chǔ)庫版本 1.5.0 起洼滚,在非原生組件中埂息,bind
和catch
后可以緊跟一個冒號,其含義不變遥巴,如bind:tap
千康、catch:touchstart
。 - value 是一個字符串铲掐,需要在對應(yīng)的 Page 中定義同名的函數(shù)拾弃。不然當(dāng)觸發(fā)事件的時候會報錯。
bind
事件綁定不會阻止冒泡事件向上冒泡迹炼,catch
事件綁定可以阻止冒泡事件向上冒泡砸彬。
2、生命周期回調(diào)函數(shù)
onLoad(Object query)
頁面加載時觸發(fā)斯入。一個頁面只會調(diào)用一次砂碉,可以在 onLoad 的參數(shù)中獲取打開當(dāng)前頁面路徑中的參數(shù)。
3刻两、tabBar(全局配置)
如果小程序是一個多 tab 應(yīng)用(客戶端窗口的底部或頂部有 tab 欄可以切換頁面)增蹭,可以通過 tabBar 配置項指定 tab 欄的表現(xiàn),以及 tab 切換時顯示的對應(yīng)頁面磅摹。
屬性 | 類型 | 必填 | 默認值 | 描述 | 最低版本 |
---|---|---|---|---|---|
color | HexColor | 是 | tab 上的文字默認顏色滋迈,僅支持十六進制顏色 | ||
selectedColor | HexColor | 是 | tab 上的文字選中時的顏色霎奢,僅支持十六進制顏色 | ||
backgroundColor | HexColor | 是 | tab 的背景色,僅支持十六進制顏色 | ||
list | Array | 是 | tab 的列表饼灿,詳見 list 屬性說明幕侠,最少2個、最多5個 tab |
其中 list 接受一個數(shù)組碍彭,只能配置最少 2 個晤硕、最多 5 個 tab。tab 按數(shù)組的順序排序庇忌,每個項都是一個對象舞箍,其屬性值如下:
屬性 | 類型 | 必填 | 說明 |
---|---|---|---|
pagePath | string | 是 | 頁面路徑,必須在 pages 中先定義 |
text | string | 是 | tab 上按鈕文字 |
iconPath | string | 否 | 圖片路徑皆疹,icon 大小限制為40kb疏橄,建議尺寸為 81px * 81px,不支持網(wǎng)絡(luò)圖片略就。當(dāng) postion 為 top 時捎迫,不顯示 icon。
|
selectedIconPath | string | 否 | 選中時的圖片路徑表牢,icon 大小限制為40kb立砸,建議尺寸為 81px * 81px,不支持網(wǎng)絡(luò)圖片初茶。當(dāng) postion 為 top 時,不顯示 icon浊闪。
|
4恼布、頁面配置
每一個小程序頁面也可以使用 .json
文件來對本頁面的窗口表現(xiàn)進行配置。頁面中配置項在當(dāng)前頁面會覆蓋 app.json
的 window
中相同的配置項搁宾。文件內(nèi)容為一個 JSON 對象,有以下屬性:
配置項
屬性 | 類型 | 默認值 | 描述 | 最低版本 |
---|---|---|---|---|
navigationBarBackgroundColor | HexColor | #000000 | 導(dǎo)航欄背景顏色,如 #000000
|
|
navigationBarTextStyle | string | white | 導(dǎo)航欄標(biāo)題顏色饲齐,僅支持 black / white
|
|
navigationBarTitleText | string | 導(dǎo)航欄標(biāo)題文字內(nèi)容 | ||
enablePullDownRefresh | boolean | false | 是否開啟當(dāng)前頁面下拉刷新愈捅。詳見 Page.onPullDownRefresh | |
onReachBottomDistance | number | 50 | 頁面上拉觸底事件觸發(fā)時距頁面底部距離,單位為px翩腐。詳見 Page.onReachBottom |
5鸟款、WePY數(shù)據(jù)綁定方式
WePY使用臟數(shù)據(jù)檢查對setData進行封裝,在函數(shù)運行周期結(jié)束時執(zhí)行臟數(shù)據(jù)檢查茂卦,一來可以不用關(guān)心頁面多次setData是否會有性能上的問題何什,二來可以更加簡潔去修改數(shù)據(jù)實現(xiàn)綁定,不用重復(fù)去寫setData方法等龙。代碼如下:
this.title = 'this is title';
需注意的是处渣,在異步函數(shù)中更新數(shù)據(jù)的時候伶贰,必須手動調(diào)用$apply
方法,才會觸發(fā)臟數(shù)據(jù)檢查流程的運行罐栈。如:
setTimeout(() => {
this.title = 'this is title';
this.$apply();
}, 3000);