『壹』 gojs的根據條件判斷是否顯示控制
可以根據條件判斷是否顯示控制
gojs是一款基於canvas的圖形庫,是由Northwoods公司開發的商用javascript插件,可以基於項目的不同需求實現具有交互性的各類圖表,比如流程圖,樹圖,關系圖,力導圖等等。gojs採用面向對象思想,以圖形對象表示繪圖單元,JSON對象作為數據模型,圖形念彎型對象通過屬性綁定的方式從數據模型獲取相關的屬性值。gojs數據模型
gojs的數據模型以是否為樹圖分為GraphLinksModel和TreeModel兩種JSON對象,GraphLinksModel包含nodeDataArray和linkDataArray屬性,而TreeModel只包含nodeDataArray屬性。gojs繪圖單元
gojs的繪圖單元很好理解,比如圖中一個節點,一條線都可以理解成一個繪圖單元,gojs通過不同的繪圖模板實現不同的繪圖單元,比如node,group,line…另外,gojs通過模板地圖的方式管理不同樣式的相同類型的繪圖單元。gojs圖表實踐
gojs繪圖流程包括創建圖形對象,構建數據模型,設置圖形對象屬性,綁仔猜定數據模型,添加交互行為。
gojs創建流程圖1、創建圖形對象可以把$理解成一個畫筆,而myDiagram理解成畫布畫圖時,通過$調用gojs自身的屬性和方法 , 完成節點和連線的繪制,attrs為圖形對象屬性2、構建數據模型
數據模型分為2種,下面以圖形連線模型為例,它包括nodeDataArray和linkDataArray3、圖形對象屬性綁定
舉例說明,比如將圖形對象的邊框寬度strokeWidth和數據模型的寬度Width進行綁定4、添加交互行為
舉例說明,比鬧讓如為node添加滑鼠事件,通過給其屬性添加相應方法進行事件綁定gojs學習與思考元數據地圖實踐
gojs不足之處在於對於css動畫支持不夠,商用版權導致開發成本增加。優勢在於canvas庫封裝較好,提供豐富的交互事件,能夠滿足實際項目的個性化需求。在項目使用中,對於常見圖表,項目實際使用echartjs作為替代選擇,對於定製化需求則採用gojs實現。