微信小程序入門(四)小程序的雙線程模型

簡介

小程序的宿主環境(微信客戶端)爲了執行小程序的各種文件:wxml文件、
wxss文件、js文件,提供了小程序的雙線程模型
◼ 雙線程模型:

  • WXML模塊和WXSS樣式運行於渲染層,渲染層使用WebView線程渲染(一個程序有多個頁面,會使 用多個WebView的線程)。
  • **JS腳本(app.js/home.js等)**運行於邏輯層,邏輯層使用JsCore運行JS腳本。
  • 這兩個線程都會經由微信客戶端(Native)進行中轉 交互。

在這裏插入圖片描述

界面渲染過程-wxml和DOM樹

在這裏插入圖片描述

界面渲染過程–初始化渲染

首先,我們需要知道,wxml等價於一棵DOM樹,也可以使用一個JS對象來模擬(虛擬DOM)
在這裏插入圖片描述
那麼,WXML可以先轉成JS對象,再渲染出真正的DOM樹
在這裏插入圖片描述

界面渲染過程–數據發生改變

通過setData把msg數據從“Hello World”變成“Goodbye”,產生的JS對象對應的節點就會發生變化,此時可以對比前後兩個JS對象得到變化的部分,然後把這個差異應用到原來的Dom樹上,從而達到更新UI的目的,這就是“數據驅動”的原理。

在這裏插入圖片描述

界面渲染的整體流程

界面渲染整體流程:

  • 1.在渲染層,宿主環境會把WXML轉化成對應的JS對象;
  • 2.將JS對象再次轉成真實DOM樹,交由渲染層線程渲染;
  • 3.數據變化時,邏輯層提供最新的變化數據,JS對象發生變化比較進行diff算法對比;
  • 4.將最新變化的內容反映到真實的DOM樹中,更新UI;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章