d3.js入門學習


個人感覺前端數據可視化是個趨勢,並且現在所在公司也是有做這塊的項目,雖然我目前還沒有接觸到公司數據可視化的項目,但是,今后總是要接觸的嘛。

今天看了一下公司目前所用的兩種數據可視化工具---D3和ECharts,ECharts由於是國產的,文檔和demo都很全,簡單看了一下,感覺很好上手,沒有必要把太多時間花在ECharts上,反觀D3,中文文檔很匱乏,api講得也不是很易於理解,但是功能很強大啊,所以,我決定開始學習D3。


通過查詢,大概知道了D3就是通過js來操作DOM,包括但不僅限於創建節點、節點綁定數據,所以D3大概就是將源生js操作DOM的方法做了封裝,並且借助H5的svg標簽來繪制圖形;

說到H5的圖形繪制,有svg和canvas;svg是矢量圖,放大不失真,canvas是位圖,放大失真,但是canvas更適合做游戲開發,說到游戲開發就不得不說js游戲引擎了,聽說白鷺引擎挺不錯~咳咳,跑題了。下面開始記錄D3相關API的使用(圖文教程,你值得擁有,如果有不對的地方也歡迎提出)

一、為項目引入D3

我這里是直接在vue項目中引入d3的,項目目錄下:npm i d3

隨便打開一個文件(.vue),切記,這里在main.js里import是無效的,要到用到D3的組件/頁面l里import D3,如下:

import * as d3 from 'd3';

二、開始表演

image.png

正如你所看到的的那樣,當前頁面有一個類名為skill的div,里面有兩個空白的p標簽,接下來,我要通過D3為其導入數據:

image.png

稍微有點js基礎的都就能看出這句話的意思,只不過這塊有兩個知識點需要提一下:

①鏈式語法,原理就是每個方法執行結束之后返回特定對象或者this對象(具體可查閱java23種設計模式)

②這里的init()數據初始化操作要放在Vue實例的mounted生命周期,created生命周期親測無效(具體參考vue生命周期)

三、檢查結果

image.png

ok,就這樣,D3已經在vue項目中成功運行,更多d3相關,敬請期待我后續博客!


免責聲明!

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



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