最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

GoJs基本使用示例詳解

 更新時(shí)間:2023年05月05日 10:33:18   作者:沅芷湘蘭  
這篇文章主要為大家介紹了GoJs基本使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

使用gojs背景

因?yàn)楣緲I(yè)務(wù)需要,需要完成一個(gè)樹(shù)形的關(guān)系圖,并且在后續(xù)過(guò)程中會(huì)對(duì)樹(shù)形關(guān)系圖進(jìn)行很多的交互來(lái)拓展樹(shù)形圖的展示。因此在研究了D3,antV G6,cytoscape和go.js之后,決定使用gojs實(shí)現(xiàn)。因?yàn)間ojs的交互功能封裝比較完善,能夠很快的搭建出想要的關(guān)系圖之外,還有很多封裝好的交互功能。例如可以使用鍵盤(pán)進(jìn)行節(jié)點(diǎn)的復(fù)制和粘貼,通過(guò)textEdited屬性實(shí)現(xiàn)節(jié)點(diǎn)內(nèi)文字的雙擊編輯等等。

gojs的引入

我們可以直接引入js的方法對(duì)gojs進(jìn)行引入

<script src="go.min.js"></script>

還可以使用cdn的方式進(jìn)行使用

<script src="https://unpkg.com/gojs/release/go-debug.js"></script>

當(dāng)然也可以通過(guò)npm進(jìn)行安裝

npm install gojs --save

本文檔以引入gojs文件的方式,在vue中使用為例。因此我是在index中引入了gojs文件,因?yàn)榉奖闳コ。⑶掖a的同步。

然后我們就可以gojs進(jìn)行使用啦,首先我們需要在使用的頁(yè)面進(jìn)行引入。

<script>
let $$ = go.GraphObject.make;//因?yàn)轫?xiàng)目中使用到j(luò)query,所以使用$$進(jìn)行一個(gè)區(qū)分
export default {

然后在mounted中對(duì)this進(jìn)行一個(gè)接收,以便我們?cè)谑褂玫臅r(shí)候出現(xiàn)this指向錯(cuò)誤的問(wèn)題。

mounted(){
    let _this = this
    this.$nextTick(()=>{
       this.init();//gojs實(shí)例化方法
    })
}

和很多可視化框架一樣,我們首先要為我們的圖形渲染提供一個(gè)容器,

<div 
    id="myDiagramDiv" 
    style="width:300px; 
    height:300px;">
</div>

然后我們對(duì)gojs進(jìn)行實(shí)例化,通過(guò)容器的id進(jìn)行綁定,并且為圖形的布局方式設(shè)置一個(gè)樹(shù)形布局。

init(){
    this.myDiagram = $$(go.Diagram, "myDiagramDiv",{
	layout: $$(go.TreeLayout)//布局方式,TreeLayout為樹(shù)形布局
    });
}

這樣,我們一個(gè)簡(jiǎn)單的畫(huà)布就已經(jīng)初始化完成了。然后我們?cè)诋?huà)布中加入一些相數(shù)據(jù)

this.myDiagram.model = new go.Model(
  [ 
    { key: "1" },
    { key: "1-1" },
    { key: "1-2" }
  ],
  [
    {form:"1",to:"1-1"},
    {form:"1",to:"1-2"},
  ]);

然后一個(gè)簡(jiǎn)單的樹(shù)形布局的圖形就出來(lái)了

在執(zhí)行new go.Model的時(shí)候,其傳入的兩個(gè)參數(shù)分別為節(jié)點(diǎn)數(shù)據(jù)和連線數(shù)據(jù),在這里我們稱之為nodes和links,其中nodes中包括key(必須,節(jié)點(diǎn)的唯一標(biāo)識(shí))和其他字段(主要是存儲(chǔ)一些節(jié)點(diǎn)的配置項(xiàng),比如節(jié)點(diǎn)的number數(shù)據(jù)或者其他需要在節(jié)點(diǎn)內(nèi)顯示的文字和圖表等),而links包括from(必須,連線的出發(fā)節(jié)點(diǎn)的key)和to(必須,連線的結(jié)尾節(jié)點(diǎn)的key)字段和其他字段(比如連線上的關(guān)系文字說(shuō)明),其中節(jié)點(diǎn)通過(guò)key來(lái)標(biāo)識(shí),因此我們要求數(shù)據(jù)的key必須唯一。不然的話,link數(shù)據(jù)在匹配出發(fā)節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)的會(huì)匹配到nodes數(shù)據(jù)中key值相同后面的節(jié)點(diǎn),而nodes數(shù)據(jù)中key值相同的面的數(shù)據(jù)節(jié)點(diǎn)會(huì)生成一個(gè)游離的節(jié)點(diǎn),因此不符合我們的需求。并且因?yàn)閷傩圆季值奶厥饨Y(jié)構(gòu),我們還可以parent字段來(lái)處理一下數(shù)據(jù)。

this.myDiagram.model = new go.TreeModel(
    [ // the nodeDataArray
        { key: "1" },
        { key: "1-1", parent: "1" },
        { key: "1-2", parent: "1" }
    ]);

可以根據(jù)自己的實(shí)際需求進(jìn)行選擇性進(jìn)行哪種方式渲染方式。

去除水印

當(dāng)然你應(yīng)該也發(fā)現(xiàn)了,圖像渲染的畫(huà)布上會(huì)出現(xiàn)gojs的版本信息和介紹等等水印,而去除這些水印是需要氪金的,然而我們還有一些其他方法能對(duì)水印進(jìn)行去除,我們?cè)谙螺d的go.min.js中全局搜索7eba17a4ca3b1a8346找到a.ir或者a.jv等,因?yàn)榘姹镜牟灰粯訉傩缘拿忠矔?huì)發(fā)生改變

a.ir=b.W[Ra("7eba17a4ca3b1a8346")][Ra("78a118b7")](b.W,ok,4,4);

然后把這段代碼替換為

a.ir=function(){return true;};

只要保證屬性名一致就可以,然后重啟我們的項(xiàng)目就可以清除水印啦。

在下篇文章中我們會(huì)通過(guò)this.myDiagram.nodeTemplate中的通過(guò)TextBlock、shape、Picture、Groups、Panel和界面的布局來(lái)對(duì)我們的節(jié)點(diǎn)進(jìn)行豐富而顯示出各種各樣并且顯示內(nèi)容不同的的節(jié)點(diǎn)類(lèi)型。

以上就是GoJs基本使用示例詳解的詳細(xì)內(nèi)容,更多關(guān)于GoJs基本使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JavaScript中的異步能省掉await嗎?

    JavaScript中的異步能省掉await嗎?

    這篇文章主要介紹了JavaScript中的異步能省掉await嗎?一直以來(lái),困擾我的一個(gè)問(wèn)題是JavaScript中,能否實(shí)現(xiàn)不帶await的異步。今天我終于把這個(gè)問(wèn)題想通了然后分享給大家,希望對(duì)大家的學(xué)習(xí)過(guò)程有所幫助
    2021-12-12
  • JS實(shí)現(xiàn)前端分頁(yè)效果

    JS實(shí)現(xiàn)前端分頁(yè)效果

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)前端分頁(yè)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • JavaScript文檔加載模式以及元素獲取

    JavaScript文檔加載模式以及元素獲取

    這篇文章主要介紹了JavaScript文檔加載模式以及元素獲取,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • JS實(shí)現(xiàn)pasteHTML兼容ie,firefox,chrome的方法

    JS實(shí)現(xiàn)pasteHTML兼容ie,firefox,chrome的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)pasteHTML兼容ie,firefox,chrome的方法,涉及javascript針對(duì)頁(yè)面元素的動(dòng)態(tài)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • 使用Performance Observer實(shí)現(xiàn)網(wǎng)頁(yè)性能優(yōu)化的示例詳解

    使用Performance Observer實(shí)現(xiàn)網(wǎng)頁(yè)性能優(yōu)化的示例詳解

    在當(dāng)今的網(wǎng)頁(yè)開(kāi)發(fā)中,性能監(jiān)控已經(jīng)成為確保用戶體驗(yàn)的一個(gè)關(guān)鍵部分,本文將深入探討一個(gè)強(qiáng)大的性能監(jiān)控工具PerformanceObserver,看看如何使用它提升網(wǎng)站性能吧
    2025-03-03
  • JS數(shù)組按指定字段轉(zhuǎn)map-list結(jié)構(gòu)(示例詳解)

    JS數(shù)組按指定字段轉(zhuǎn)map-list結(jié)構(gòu)(示例詳解)

    在開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)出現(xiàn)接口返回整個(gè)數(shù)組,我們需要將數(shù)組進(jìn)行二次處理,這篇文章主要介紹了js?數(shù)組按指定字段轉(zhuǎn)map-list結(jié)構(gòu),需要的朋友可以參考下
    2023-11-11
  • 一些手寫(xiě)JavaScript常用的函數(shù)匯總

    一些手寫(xiě)JavaScript常用的函數(shù)匯總

    這篇文章主要給大家介紹了一些手寫(xiě)的JavaScript常用的函數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • uniapp中常用的幾種提示彈框

    uniapp中常用的幾種提示彈框

    在前端開(kāi)發(fā)中,為了優(yōu)化用戶的交互體驗(yàn),常需要用到彈窗來(lái)進(jìn)行提示,引導(dǎo)用戶操作,下面這篇文章主要給大家介紹了關(guān)于uniapp中常用的幾種提示彈框的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • Bootstrap面板(Panels)的簡(jiǎn)單實(shí)現(xiàn)代碼

    Bootstrap面板(Panels)的簡(jiǎn)單實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了Bootstrap面板(Panels)的簡(jiǎn)單實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 寫(xiě)了個(gè)XML+Tree無(wú)窮樹(shù)js版

    寫(xiě)了個(gè)XML+Tree無(wú)窮樹(shù)js版

    寫(xiě)了個(gè)XML+Tree無(wú)窮樹(shù)js版...
    2007-09-09

最新評(píng)論

平和县| 凤翔县| 开阳县| 花莲县| 香港| 灌阳县| 察雅县| 景泰县| 黔南| 云浮市| 西乌珠穆沁旗| 德州市| 仁怀市| 特克斯县| 甘泉县| 赣榆县| 澎湖县| 册亨县| 阿勒泰市| 永济市| 临猗县| 西乡县| 年辖:市辖区| 满城县| 亚东县| 台北县| 察隅县| 荆州市| 新乡市| 克什克腾旗| 江陵县| 台北县| 麻城市| 噶尔县| 大同县| 芒康县| 华安县| 鸡西市| 准格尔旗| 平顺县| 寻乌县|