微信小程序面試

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++
  },()=>{
})
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容