導航:首頁 > 軟體知識 > 小程序一般用什麼數據流

小程序一般用什麼數據流

發布時間:2023-09-12 17:25:06

❶ Taro 3.3 alpha 發布:用 ant-design 開發小程序

小程序的設計並沒有完全遵循 Web 規范,導致小程序生態和傳統 Web 開發生態之間的割裂,海量優秀的 Web 物料並不能直接用於小程序開發。因而 Taro 在相當一段時間內生態都相對薄弱,UI 框架選擇不多的問題更是深深困擾著開發者。

另一方面,業界有著存量的 H5 應用,中短期內 H5 應用適配到小程序端的需要還會存在。我們希望能減少 H5 應用遷移到小程序端的成本,甚至能夠直接運行在小程序端。

Taro 團隊一直在思考如何最大限度地在小程序環境中復用 Web 生態,直到 Taro 3.0 誕生後,這種想法有了落地的可能。下文將介紹基於 Taro 3.0 實現 H5 同構的思路與問題,以及我們嘗試適配了三大移動端 UI 框架 WEUI Ant Design Mobile VantUI 的實驗結果。

Taro 3.0 是一款重運行時的跨端框架,它通過模擬實現瀏覽器的 BOM 和 DOM API 實現了對 React、Vue 等 Web 開發框架的兼容。

既然已經有了瀏覽器環境的 BOM 和 DOM API,Taro 應用和 Web 應用之間的鴻溝在於小程序組件和 HTML 標簽之間的差異。

Taro3 的渲染數據流如下:

前端框架 -> Taro DOM -> 小程序 data

HTML 標簽和小程序組件的標簽名、屬性、事件是有差異的,而前端框架無需感知這些差異。

因此前端框架適配層、Taro DOM 層不需要改動,只要在 Taro DOM 序列化為小程序 data 這一步作映射即可。

HTML 標簽相對小程序組件封裝程度更低、功能更簡單,可以看作是小程序組件的子集。因此可以按一定的規則,把 HTML 標簽映射為小程序組件,如:

完整的標簽名映射規則請看: RFC 附錄一

如果 HTML 標簽的屬性能在對應小程序組件的屬性上找到對應,則進行映射,如:

完整的屬性名映射規則請看: RFC 附錄二

把 HTML 特有的事件在小程序端找到相似的事件進行映射,如:

完整的事件映射規則請看: RFC 附錄三

前文介紹了我們會把 HTML 標簽映射為小程序組件,但是 H5 應用中使用到的 CSS 標簽選擇器就會失效。

因此 Taro 使用了類名去進行模擬:

Taro 提供兩種內置的瀏覽器默認樣式,可以直接引入生效:

理想很美好,但現實卻略顯骨感。即使 Taro 能實現 BOM、DOM API,支持使用 HTML 標簽等,同構方案還是存在著一些框架層面抹平不了的差異。以下列舉出若干主要限制:

在 H5 中我們可以調用 DOM API 同步獲取元素的尺寸:

但是在小程序中,獲取元素尺寸的 API 是非同步的:

因此不能兼容那些使用了同步 DOM API 去獲取元素尺寸的組件。

<canvas> 、 <video> 、 <audio> 等標簽在 H5 端可以直接調用 HTMLElement 上的方法:

但是在 Taro 中,要調用組件上的原生方法,必須先創建對應的 Context :

部分樣式或 CSS 選擇器在小程序中不支持,如:

首先需要安裝 v3.3 的 CLI 工具:

然後進入項目,把 package.json 文件中 taro 相關依賴的版本修改為 ^3.3.0-alpha.2 ,再重新安裝依賴(建議先把 node_moles 文件夾刪除)。

為了節省項目空間,同構功能是可選的,以 Taro 插件的形式提供。

首先開發者需要安裝插件 @tarojs/plugin-html :

然後配置使用此插件:

為了驗證同構功能的可用性和效果,我們對 CSS 樣式庫 WEUI 、React 組件庫 Antd Design Mobile 、Vue2 組件庫 VantUI 的所有組件進行了測試。

測試效果比較理想,甚至稍微超出我們的預期,配合各組件庫自身的按需載入能力,能以小巧的體積使用豐富的組件,相信各位開發者會喜歡這個功能。

倉庫地址: taro-weui

WEUI 是一個 CSS 的樣式庫,與框架無關,兼容性比較高,大部分組件能直接使用。

倉庫地址: taro-antd-mobile

能直接兼容使用的組件大概為 80%,主要問題在於:

倉庫地址: taro-vant

VantUI 的組件十分豐富,能直接兼容使用的組件大概為 70%。部分開發者會在 Taro 中配合使用 Vant Weapp,但 Vant Weapp 只能運行在微信小程序,因此對 VantUI 的直接適配是一個很好的補充。

適配過程主要遇到的問題有:

同構方案還在持續優化中,部分實現還沒有最終定稿。歡迎各位開發者到我們的論壇下留言,提出您的寶貴意見~: 同構方案 RFC 。

歡迎關注凹凸實驗室

閱讀全文

與小程序一般用什麼數據流相關的資料

熱點內容
如何走進場外交易市場 瀏覽:830
金十數據官網是哪個省 瀏覽:287
交易貓號主改密碼了怎麼辦 瀏覽:515
本地民事代理怎麼處理 瀏覽:245
為什麼花生代理老是斷連接 瀏覽:353
歐弗蘭怎麼代理 瀏覽:786
如何規范數據信息被非法獲取 瀏覽:309
新傢具收購哪個市場好 瀏覽:13
菏澤什麼地方有舊貨市場 瀏覽:116
雲技術公司怎麼做 瀏覽:333
山東市場怎麼開發 瀏覽:951
江蘇揚州對口高考技術佔多少分 瀏覽:603
如何製造情懷產品 瀏覽:904
委託加盟代理怎麼做 瀏覽:342
智慧消防合作代理怎麼辦 瀏覽:615
余額寶為什麼沒有類似產品儲存 瀏覽:449
什麼是月份信息 瀏覽:919
技術保障是如何保障生產的 瀏覽:724
製作直方圖數據要多少 瀏覽:678
大數據需要什麼學科 瀏覽:442