1.如何實(shí)現(xiàn)下拉刷新
- 首先在app.json或者頁面的json中配置enablePullDownRefresh為true
- 在 Page中使用onPullDownRefresh 函數(shù),該函數(shù)在下拉刷新時(shí)執(zhí)行
- 在下拉函數(shù)執(zhí)行時(shí)發(fā)起數(shù)據(jù)請求,請求返回后,調(diào)用 wx.stopPullDownRefresh 停止下拉刷新的狀態(tài)
2.怎么解決小程序的異步請求問題
- 不封裝接口的話可以在返回成功的回調(diào)里面處理邏輯
- 可以用Promise 來封裝
- 可以引用runtime來使用async await
- 使用wepy或著美團(tuán)的小程序框架,可以通過安裝庫解決
3.封裝微信小程序的數(shù)據(jù)請求的
將所有的接口放在統(tǒng)一的js文件中并導(dǎo)出
在app.js中創(chuàng)建封裝請求數(shù)據(jù)的方法
在子頁面中調(diào)用封裝的方法請求數(shù)據(jù)
4.bindtap和catchtap的區(qū)別是什么
- bindtap是不會(huì)阻止冒泡事件的,catchtap是阻值冒泡的
5.跳轉(zhuǎn)頁面
- wx.navigateTo():保留當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁面。但是不能跳到 tabbar 頁面(參數(shù)必須為字符串)
- wx.redirectTo():關(guān)閉當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁面。但是不允許跳轉(zhuǎn)到 tabbar 頁面
- wx.switchTab():跳轉(zhuǎn)到 abBar 頁面,并關(guān)閉其他所有非 tabBar 頁面
- wx.navigateBack()關(guān)閉當(dāng)前頁面,返回上一頁面或多級(jí)頁面??赏ㄟ^ getCurrentPages() 獲取當(dāng)前的頁面棧,決定需要返回幾層
- wx.reLaunch():關(guān)閉所有頁面,打開到應(yīng)用內(nèi)的某個(gè)頁面
- 通過navigator跳轉(zhuǎn)
6.小程序跳轉(zhuǎn)tab需要注意哪些?
答:必須用wx.switchTab(Object object),需要跳轉(zhuǎn)的頁面必須是在app.json中的tabBar注冊過的,并且路徑后不能帶參數(shù)
7.小程序如何實(shí)現(xiàn)跨頁面跳轉(zhuǎn)
//這個(gè)步驟有點(diǎn)長,先挖個(gè)坑,以后有時(shí)間填
8.wxml傳值
- 添加data-屬性來傳遞我們需要的值,然后通過e.currentTarget.dataset獲取
- 需要注意:命名如果有大寫,如:data-ID,在獲取的時(shí)候都是小寫,即:ev.currentTarget.dataset.id
9.app.onLaunch的異步解決
//回調(diào)
//還有別的方法 以后再寫 感覺能寫一篇
10.setData的回調(diào)函數(shù)
答:微信小程序的setData實(shí)現(xiàn)是和react的setData實(shí)現(xiàn)類似的,所以它也是一個(gè)異步函數(shù),并且有回調(diào)函數(shù)的參數(shù),當(dāng)然平時(shí)小量數(shù)據(jù)我們可能并沒有感覺到它的異步,但是為了確保邏輯的正確執(zhí)行,在需要用到setData后 data里的數(shù)據(jù)的步驟,請寫入setData的回調(diào)函數(shù)中,如下示例:
this.setData({
a: this.data.a++
},()=>{
})