天天看點

知識點總結 小程式

1、小程式的相關檔案類型

  微信小程式項目結構主要有四個檔案類型:

    wxml  架構設計的一套标簽語言,結合基礎元件、事件系統,可以建構出頁面的結構。内部主要是微信自己定義的一套元件。

    wxss  是一套樣式語言,用于描述wxml的元件樣式

    js  邏輯處理,網路請求

    json  小程式設定,如頁面注冊,頁面标題及tabBar

  

  主要檔案:

    app.json  必須。這個檔案是配置檔案入口,整個小程式的全局配置。包括頁面注冊,網路設定,以及小程式的window背景色,配置導覽列樣式,配置預設标題。

    app.js  必須。這裡監聽并處理小程式的生命周期函數,聲明全局變量。

    app.wxss  可選

2、簡述微信小程式原理

  微信小程式采用JavaScript、wxml、wxss三種技術進行開發,本質就是一個單頁面項目,所有的頁面渲染和事件處理,都在一個頁面内進行,但又可以通過微信用戶端調用原生的各種接口。

  微信的架構,是資料驅動的架構樣式,它的ui和資料是分離的,所有的頁面更新,都需要通過對資料的更改來實作。

  小程式分為兩個部分:webview和appServer。其中webview主要用來展現ui,appServer用來處理業務邏輯、資料及接口調用。它們在兩個程序中執行,通過系統層JSBridge實作通信,實作ui的渲染、事件的處理。

 

3、小程式的雙向綁定和vue哪裡不一樣

  小程式直接使用this.data的屬性是不能同步到視圖的,必須調用:

4、小程式的wxss和css哪裡不一樣

  wxss和css類似,不過在css的基礎上做了一些補充和修改

  尺寸機關:rpx

    rpx是響應式像素,可以根據螢幕寬度進行自适應。規定螢幕寬為750rpx。如在iPhone6上,螢幕寬度為375px,共有750個實體像素,則750rpx=375px=750實體像素。

  使用@import标志符來導入外聯樣式,@import後跟需要導入的外聯樣式表的相對路徑,用;表示語句結束。

5、小程式有哪些傳遞資料的方法

  ①使用全局變量實作資料傳遞

    在app.js中定義全局變量globalData,将需要存儲的資訊放在裡面

    使用時,直接使用getApp()拿到存儲的資訊

  ②使用wx.navigateTo與wx.redirectTo的時候,可以将部分資料放在url裡面,并在新頁面onLoad的時候初始化

    需要注意的問題:wx.navigateTo和wx.redirectTo不能跳轉到tab所包含的頁面

            onLoad隻執行一次

  ③使用本地緩存Storage相關

6、小程式的生命周期函數

  onLoad  頁面加載時觸發。一個頁面隻會調用一次,可以在onLoad的參數中擷取打開目前頁面路徑中的參數

  onShow  頁面顯示/切入前台時觸發

  onReady  頁面初次渲染完成時觸發。一個頁面隻會調用一次,代表頁面已經準備妥當,可以和視圖層進行互動

  onHide  頁面隐藏/切入背景時觸發。如navigateTo或底部tab切換到其他頁面,小程式切入背景等

  onUnload  頁面解除安裝時觸發,如redirectTo或navigateBack到其他頁面時

7、怎麼封裝小程式的資料請求

  使用:

8、哪些方法可以提高微信小程式的應用速度

  提高頁面加載速度

  使用者行為預測

  減少預設data的大小

  元件化方案

9、微信小程式的優劣勢

  優勢:①即用即走,不用安裝,省流量,省安裝時間,不占用桌面

     ②依托微信流量,推廣傳播優勢好

     ③開發成本比app低

  劣勢:①使用者留存,即用即走是優勢,也存在一些問題

     ②入口相對傳統app要深很多

     ③限制較多,頁面大小不能超過2M,不能打開超過10個層級的頁面

10、怎麼解決小程式的異步請求問題

  小程式支援大部分ES6文法

    在傳回成功的回調裡處理邏輯

    Promise異步

11、小程式關聯微信公衆号如何确定使用者的唯一性

  如果開發者擁有多個移動應用、網站應用、公衆賬号(包括小程式),可通過unionid來區分使用者的唯一性,因為隻要是同一個微信開放平台賬号下的移動應用、網站應用和公衆賬号(包括小程式),使用者的unionid是唯一的。換句話說,同一使用者,對同一個微信開放平台下的不同應用,unionid是相同的。

12、如何實作下拉重新整理

  ①首先在遷居config中的window配置enablePullDownRefresh

  ②在Page中定義onPullDownRefresh鈎子函數,到達下拉重新整理條件後,該鈎子函數執行,發起請求方法

  ③請求傳回後,調用wx.stopPullDownRefresh停止下拉重新整理

13、bindtap和catchtap的差別是什麼

  相同點:它們都是作為點選事件函數,都是點選時觸發。在這個作用上它們是一樣的,可以不做區分。

  不同點:bindtap是不會阻止冒泡事件的,catchtap是阻止冒泡的

14、簡述wx.navigateTo()、wx.redirectTo()、wx.switchTab()、wx.navigateBack()、wx.reLaunch()的差別

  wx.navigateTo()  保留目前頁面,跳轉到應用内的某個頁面,但是不能跳到tabBar頁面

  wx.redirectTo()  關閉目前頁面,跳轉到目前應用内的某個頁面,但是不能跳到tabBar頁面

  wx.switchTab()  跳轉到tabBar頁面,并關閉其他所有非tabBar頁面

  wx.navigateBack()  關閉目前頁面,傳回上一級頁面或多級頁面,可通過getCurrentPages()擷取目前的頁面棧,決定需要傳回幾層

  wx.reLaunch()  關閉所有頁面,打開到應用内的某個頁面

Qt

繼續閱讀