微信小程序中的數據渲染


1、小程序和瀏覽器中有什么不同

  瀏覽器中渲染是單線程的。

       而在小程序中的運行環境分成渲染層和邏輯層, WXML 模板和 WXSS 樣式工作在渲染層,JS 腳本工作在邏輯層。

2、小程序中如何渲染

  WXML模板使用 view 標簽,其子節點用 {{ }} 的語法綁定一個 msg 的變量。

<view>{{ msg }}</view>

  在 JS 腳本使用 this.setData 方法把 msg 字段設置成 “Hello World”。

Page({
  onLoad: function () {
    this.setData({ msg: 'Hello World' })
  }
})

  總結:

    1.渲染層和數據相關。

    2.邏輯層負責產生、處理數據。

    3.邏輯層通過 Page 實例的 setData 方法傳遞數據到渲染層。

3、小程序中通訊模型

  小程序的渲染層和邏輯層分別由2個線程管理:

  渲染層的界面使用了WebView 進行渲染;

  邏輯層采用JsCore線程運行JS腳本。

  一個小程序存在多個界面,所以渲染層存在多個WebView線程,這兩個線程的通信會經由微信客戶端(下文中也會采用Native來代指微信客戶端)做中轉,邏輯層發送網絡請求也經由Native轉發。

 

 

4、數據驅動的思想

  在開發UI的過程中,程序需要維護很多變量狀態,同時要操作對應的UI元素。隨着頁面越來越復雜,我們需要維護的變量越來越多,同時要處理的界面上的交互也越來越多,整個程序會變的越來越復雜。

       通常情況下視圖和變量的狀態是相關聯的,如果有某種方法可以讓狀態和視圖綁定在一起,那就可以讓我們省去修改視圖的工作,這個方法就叫做數據驅動。

       在有了框架之后,我們一般很少會采用直接去修改視圖的方式,更新界面了,絕大多數情況,都會通過操作數據的方式,來更新視圖。通過數據去驅動視圖渲染。 


免責聲明!

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



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