1.列表渲染-進階用法
- 如果要對默認的變量名和下標進行修改,可以使用wx:for-item和wx:for-index
wx:for-item可以指定數組當前元素的變量名
wx:for-index可以指定數組當前下標的變量名 - 將wx:for用在標簽上,以渲染一個包含多個節點的結構快
并不是一個組件,僅僅是一個包裝元素,不會在頁面中做任何渲染,只接受控制屬性
標簽在wxml中可以用于組織代碼結構,支持列表渲染、條件渲染等
fruitItem新的數組名,i是下標
<view wx:for="{{ fruitList }}" wx:key="id" wx:for-item="fruitItem" wx:for-index="i"><view>{{ fruitItem.name }}</view><view>{{ fruitItem.price }}</view>
</view><block wx:for="{{ fruitList }}" wx:key="id" wx:for-item="fruitItem" wx:for-index="i"><view>{{ fruitItem.name }}</view><view>{{ fruitItem.price }}</view>
</block>
2.條件渲染
用來控制頁面結構的展示和隱藏
有兩種方式:
- 使用wx:if、wx:elif、wx:else屬性組
- 使用hidden屬性
wx:if和hidden兩者的區別
wx:if 當條件為true時結構展現出來,否則不展示,通過移除/新增節點的方式來實現
hidden 當條件為true時會將結構隱藏,否則展示,通過idsplay樣式屬性來實現
<view wx:if="{{ num === 1 }}">num等于{{ num }}</view>
<view wx:elif="{{ num === 2 }}">num等于{{ num }}</view>
<view wx:else>num大于2,目前等于{{ num }}</view><button type="warn" bindtap="updateNum">更改num</button><view hidden="{{ !isFlag }}">如果isFlag是true,展示結構,否則隱藏結構</view>
3.小程序運行機制
4.小程序更新機制
在訪問小程序時,微信會將小程序代碼包緩存到本地。
開發者在發布了新的小程序版本以后,微信客戶端會檢查本地緩存的小程序有沒有新版本,并進行小程序代碼包的更新。
小程序的更新機制有兩種:啟動時同步更新 和 啟動時異步更新
-
啟動時同步更新:微信運行時,會定期檢查最近使用的小程序是否有更新。如果有更新,下次小程序啟動時會同步進行更新,更新到最新版本后再打開小程序。如果 用戶長時間未使用小程序時,會強制同步檢查版本更新
-
啟動時異步更新:在啟動前沒有發現更新,小程序每次 冷啟動 時,都會異步檢查是否有更新版本。如果發現有新版本,將會異步下載新版本的代碼包,將新版本的小程序在下一次冷啟動進行使用,當前訪問使用的依然是本地的舊版本代碼
在啟動時異步更新的情況下,如果開發者希望立刻進行版本更新,可以使用 wx.getUpdateManager API 進行處理。在有新版本時提示用戶重啟小程序更新新版本。
App({
//onLaunch是小程序的鉤子函數,在冷啟動時肯定會執行到
//當小程序冷啟動時,會自動在微信后臺請求新版本,若有,立即下載onLaunch () {// 用wx.getUpdateManager()監聽下載狀態const UpdateManager = wx.getUpdateManager()//當下載完成新版本后,會觸發onUpdateReady回調函數UpdateManager.onUpdateReady(function () {//在回調函數中給用戶展示wx.showModal({title: '更新提示',content: '新版本已經準備好,是否重啟應用?',success (res) {if (res.confirm) {//強制使用新版本并強制重啟UpdateManager.applyUpdate()}}})})}
})
5.小程序生命周期介紹
應用生命周期是指應用程序進程從創建到消亡的整個過程。
小程序的生命周期指的是 小程序從啟動到銷毀的整個過程。
一個小程序完整的生命周期由 三部分來組成
- 應用生命周期
- 頁面生命周期
- 組件生命周期
小程序生命周期伴隨著一些函數,這些函數由小程序框架本身提供,被稱為生命周期函數,生命周期函數會按照順序依次自動觸發調用。
幫助程序員在特定的時機執行特定的操作,輔助程序員完成一些比較復雜的邏輯。
6.應用生命周期
就是小程序從被打開到被關掉的一個過程
啟動–>運行–>銷毀
應用生命周期伴隨著一些函數,我們稱為應用生命周期函數,它需要在app.js文件的App()方法中進行定義,用來注冊小程序
如果用戶是在被掛起三十分鐘再次訪問小程序,只會執行onShow函數,不會執行onLaunch函數
從小程序生命周期的角度來看,我們一般講的啟動專指冷啟動,熱啟動一般被稱為后臺切前臺
6.頁面生命周期
指小程序頁面從加載–>運行–>銷毀的整個過程
頁面生命周期函數要在Page()方法進行定義
onLoad和onReady只會觸發一次
8.生命周期兩個細節
- tabbar頁面之間相互切換,頁面不會被銷毀
- 點擊左上角,返回上一個頁面,會銷毀當前頁面
9.小程序API介紹
微信小程序提供原生API,可以方便的調起微信提供的能力如:獲取用戶信息,微信登錄,微信支付。
小程序提供的API幾乎都掛載在wx對象下,如:wx.request()、wx.setStorage(),wx對象實際上就是小程序的宿主環境微信所提供的全局對象。
異步API支持callback&Promise兩種調用方式
- 當接口參數Object對象中不包含success/fail/compete是將默認返回Promise.
- 部分接口如 request, uploadFile 本身就有返回值,因此不支持 Promise 風格的調用方式,它們的 promisify 需要開發者自行封裝。
10.發起網絡請求
發起網絡請求獲取服務器的數據,需要使用wx.request()接口API
wx.request請求的域名必須在微信公眾平臺進行配置,如果使用wx.request()請求未配置的域名,會報錯