02-09 小程序的雙線程模型


小程序的雙線程模型

 

 

 

上圖為官方文檔給出的雙線程模型

小程序的宿主環境

微信客戶端微信客戶端提供雙線程去執行wxml,wxss,js文件。

雙線程模型

1.上述的渲染層上面運行這wxml文件已經wxss文件,渲染層使用是的webview線程進行渲染(一個程序會有多個頁面,也就會有多個view線程進行運作)

2.js文件是運行在邏輯層,邏輯層的js是通過jscore進行運行的。

通過雙線程界面的渲染過程是怎樣的?

wxml與DOM樹

其實我們wxml文件與我們html中的DOM樹是一樣的,這樣我們就可以有js來模擬一個虛擬的DOM樹:

初始化渲染

 

如果我們的wxml文件中如果有變量:要與js邏輯層共同渲染頁面成為一個真正的DOM樹:

界面數據發生變化

 

 

1如果通過setDat把hell改成dsb,則js對象的的節點會發生改變.

2 這時會用diff算法對比兩個對象的變化,

3 然后將變化的部分應用到DOM樹上

4 從而達到更新頁面的目的,這也就是數據驅動的原理

總結

界面渲染的整體流程

1在渲染層將wxml文件與wxss文件轉化成js對象也就是虛擬DOM

2 在邏輯成將虛擬的DOM對象配合生成,真實的DOM樹,在交給渲染層渲染

3 當數據變化是,邏輯層提供更新數據,js對象發生改變,用diff算法進行比較

4 將更新的內容,反饋到真實的DOM樹中,更新頁面

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM