国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

深入了解響應式React Native Echarts組件

2024-05-06 15:38:43
字體:
來源:轉載
供稿:網友

前言

一種在 React Native 中封裝的響應式 Echarts 組件,使用與示例請參見:react-native-echarts-demo

近年來,隨著移動端對數據可視化的要求越來越高,類似 MPAndroidChart 這樣的傳統圖表庫已經不能滿足產品經理日益變態的需求。前端領域數據可視化的發展相對繁榮一些,通過 WebView 在移動端使用 Echarts 這樣功能強大的前端數據可視化庫,是解決問題的好辦法。

React Native 開發中,由于使用的是與前端相同的 JavaScript 語言,銜接 Echarts 的工作相對順暢些,不過一些必要的組件封裝還是能夠大大提高開發效率的。

Echarts 官方推薦過一個第三方封裝庫:react-native-echarts(注:它對應的 nmp package 名字為native-echarts ),目前有 400+ stars 和 100+ 的周下載量,可見還是被廣泛使用的。但是我們經過調研,發現 react-native-echarts 存在以下一些問題:

該庫已半年多未更新,Echarts 版本停留在 3.0 ,Android 端打包需手動添加 assets 的問題也一直未處理 庫的接口靈活度較低,比如只能通過 width、height 設置大?。粺o法使用 Echarts 擴展包;無法進行事件注冊、WebView 通信等

由于用WebView 封裝 Echarts 涉及到本地 html,不是純 JavaScript 語言層面的功能,又沒有 native 代碼,所以做成 nmp package 并不是一個很好的選擇,寫成項目里的內部組件,自己進行配置反而是更方便更靈活的方案。

因此我們決定不使用第三方的 Echarts 封裝庫,自己寫一個通用組件 WebChart 。為方便開發中使用,該組件具有以下特點:

按照響應式進行設計,只需在 option 中配置好數據源,數據變化后圖表就會自動刷新,更符合 React 的風格。 我們的方案是在組件每次 update 時判斷傳入的 option 參數是否發生變化,如果變化通過 webView.postMessage ,以 JSON 的形式傳入新的 option ,通知 Echarts 重新 setOption 。 雖然 Echarts 本身會對 option 進行對比,但事先判斷可以減少 update 導致的與 WebView 頻繁通信,這一點在容器父組件中有大量異步請求時還是很明顯的;在 WebView 內部,更新則是采用 Echarts 本身的 setOption 而無需 reload 整個 WebView 利用 WebView 的 postMessage 和 onMessage 接口,可實現圖表與其它 React Native 組件的事件通信 通過組件的 exScript 參數,可為 WebView 添加任意腳本,使用靈活 由于是自己寫的組件, echarts 版本、擴展包,svg/canvas 、數據增量加載都可以自己設定

Demo 與使用方法

使用與示例請參見:react-native-echarts-demo,如果你需要直接使用,可按以下步驟移植:

將根目錄下的 WebChart 組件文件夾拷到你項目中合適的地方
將 /android/app/src/main/assets/web 文件夾拷到你項目同樣位置,沒有 assets 文件夾需手動創建。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 霍城县| 莱州市| 唐山市| 榆林市| 梨树县| 竹溪县| 璧山县| 合川市| 长治县| 三原县| 高淳县| 辰溪县| 彭阳县| 板桥市| 吴桥县| 秦皇岛市| 双辽市| 尼木县| 麻栗坡县| 柳林县| 淮滨县| 江西省| 巴林左旗| 丰都县| 盖州市| 台中县| 泽库县| 孝义市| 出国| 开阳县| 潞西市| 苗栗市| 松潘县| 平利县| 汤阴县| 金华市| 琼结县| 淄博市| 墨脱县| 碌曲县| 唐海县|