由于小程序開發(fā)框架的邏輯層并非運行在瀏覽器環(huán)境中,而是運行在App Service Thread中,視圖層View運行在View Thread,由Webview實現(xiàn)渲染,兩者之間通過JSBridge實現(xiàn)通信。
下圖說明了 Page 實例的生命周期。
首先,需要明確小程序目前可運行于各不相同的三端:
盡管三端的環(huán)境是十分相似的,但是還是有些許區(qū)別:
運行時環(huán)境的差異導致各種詭異的問題,所以一切調(diào)試應以真機為準;
No,小程序視圖層仍然依賴于Webview,只有部分組件是原生組件,用來解決Mobile Web體驗問題。目前原生組件包括:input,textarea,video,map,canvas
tip: input 組件是一個 native 組件,字體是系統(tǒng)字體,所以無法設置 font-family;
tip: textarea 組件是由客戶端創(chuàng)建的原生組件,它的層級是最高的。
tip: video 組件是由客戶端創(chuàng)建的原生組件,它的層級是最高的。
tip: map 組件是由客戶端創(chuàng)建的原生組件,它的層級是最高的。
tip: canvas 組件是由客戶端創(chuàng)建的原生組件,它的層級是最高的。
而其它組件都是基于Web Component規(guī)范實現(xiàn)的Custom Element,而諸如picker彈出選擇器行為,navigator跳轉(zhuǎn)行為,都是基于微信原生提供的能力,理解為調(diào)用wx.xxxApi
控制臺常見的警告信息處理

意思很明顯,就是說,你在綁定數(shù)據(jù)數(shù)據(jù)時候,尤其在用wx:for循環(huán)時,你可以給元素添加wx:key="屬性名",通過這種方式,來提高小程序的性能。?