微信小程序的架構原理

一、相關SDK

小程序SDK
原生小程序頁面開發使用微信提供的小程序基礎庫(小程序sdk:https://developers.weixin.qq.com/miniprogram/dev/api/)進行。

小程序基礎庫提供豐富的微信原生API,可以方便的調起微信提供的能力,如獲取用戶信息,本地存儲,支付功能等。

JS-SDK
小程序內嵌的h5頁面的開發,通過調用微信提供的
JS-SDK(http://res.wx.qq.com/open/js/jweixin-1.0.0.js)可以調起微信能力(分享,定位。。)

微信 JS-SDK 是微信公衆平臺面向網頁開發者提供的基於微信內的網頁開發工具包。通過使用微信 JS-SDK ,網頁開發者可藉助微信高效地使用拍照、選取圖片、語音、位置等手機系統的能力,同時可以直接使用微信分享、掃一掃、卡券、支付等微信特色功能,爲微信用戶提供更優質的網頁體驗。

JsBridge
js通過JsBridge調用native層提供的功能,微信小程序JsBridge只是JsBridge實現的一種方式,wx 就是客戶端暴露給小程序的JsBridge接口。而這個封裝的JsBridge非常強大,它不僅僅支持toast,彈框等簡單功能,甚至包括網路request請求,緩存操作,手機硬件設備藍牙、重力感應等。

webview是微信小程序提供的打開h5頁面的方式,是原生小程序頁面和內嵌的h5頁面通信的方式。

二、架構

在這裏插入圖片描述

視圖層和邏輯層分開在兩個線程中運行;
視圖層、邏輯層通過事件完成通信;
JsBridge一方面傳遞基礎功能,另一方面做視圖層和邏輯層的數據傳遞工作,視圖層向邏輯層的通信由事件來完成,而邏輯層數據向視圖層發送渲染指令是通過Page的setData函數。(https://blog.csdn.net/lcstrive/article/details/73928144)

小程序運行生命週期流程
在這裏插入圖片描述
小程序的生命週期包含生命週期(左側藍色部分)和頁面生命週期(右側綠色部分),在頁面生命週期中,視圖進程在完成階段性工作後,需要向邏輯層同步其當前狀態以便邏輯層做出應對策略。

視圖層通過事件把用戶行爲反應到邏輯層
邏輯層根據用戶行爲進行相應的處理,並把最新獲得的state通過setData()傳遞到視圖層,引起重新渲染。
參考:
https://blog.csdn.net/lcstrive/article/details/73928144
https://www.cnblogs.com/kenshinobiy/p/6724867.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章