vue3+ts使用antv/x6 + 自定義節點

使用 2.x 版本 x6.antv 新官網:

安裝

npm install @antv/x6
//"@antv/x6": "^2.1.6",

項目結構
在這里插入圖片描述

1、初始化畫布 index.vue
<template><div id="container"></div>
</template><script setup lang='ts'>
import { onMounted } from "vue";
import { Graph } from '@antv/x6';
let graph:Graph
const graphInit = ()=>{graph = new Graph({container: document.getElementById('container')!,});
}onMounted(()=>{graphInit()
})
</script><style scoped>
#container{width: 100vw;height: 100vh;
}
</style>
2、注冊節點

渲染 Vue 節點,這個文檔完全夠用

npm install @antv/x6-vue-shape
//"@antv/x6-vue-shape": "^2.0.9",

節點node.vue

<template><div class="nodeitem">{{ data?.nodeName }}</div>
</template>
<script setup lang='ts'>
import { inject, onMounted,ref } from "vue";
import { Node } from '@antv/x6'interface NodeDTO {nodeId?: stringnodeName: string
}const getNode: Function | undefined = inject<Function>("getNode");
const data =  ref<NodeDTO|undefined>(undefined)
onMounted(() => {const node = getNode?.() as Node;data.value = node?.getData()
});
</script><style scoped>
.nodeitem{width:100px;border: 1px solid #ccc;
}
</style>
3、在畫布引入并注冊自定義節點,配置節點信息

主畫布:index.vue

<template><div id="container"></div><TeleportContainer/>
</template><script setup lang='ts'>
import { onMounted } from "vue";
import { Graph,Cell } from '@antv/x6';
import NodeItem from "./node.vue";
import {register,getTeleport} from '@antv/x6-vue-shape'
let graph:Graph
register({shape: "node-item",width: 150,height: 100,component: NodeItem,
});// 注冊自定義節點
const TeleportContainer = getTeleport();// 自定義節點優化
const refreshData = (data)=>{//渲染節點數據const cells: Cell[] = []data.nodes.forEach((item: any) => {cells.push(graph.createNode(item))})data.edges?.forEach((item: any) => {cells.push(graph.createEdge(item))})graph.resetCells(cells)graph.centerContent()graph.zoomToFit({ padding: 10, maxScale: 1 })
}
const graphInit = ()=>{graph = new Graph({container: document.getElementById('container')!,});let data = {nodes: [{id: 'node1', // String,可選,節點的唯一標識shape: 'node-item',x: 40,       // Number,必選,節點位置的 x 值y: 40,       // Number,必選,節點位置的 y 值data: {nodeId: 'node1',nodeName: '節點1',},}],edges:[]}refreshData(data)
}
onMounted(()=>{graphInit()
})
</script>

展示
在這里插入圖片描述
小小預告:
下一篇 自定義節點樣式
再下一篇 側邊欄
再下一篇 整理畫布

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37717.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37717.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37717.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python爬蟲——scrapy_基本使用

安裝scrapy pip install scrapy創建scrapy項目&#xff0c;需要在終端里創建 注意&#xff1a;項目的名字開頭不能是數字&#xff0c;也不能包含中文 scrapy startproject 項目名稱 示例&#xff1a; scrapy startproject scra_baidu_36創建好后的文件 3. 創建爬蟲文件&…

MySQL表的操作

文章目錄 MySQL表的操作1. 創建表2. 查看表2.1 查看數據庫中存在的表2.2 查看表的屬性2.3 查看創建時表的詳細信息 3. 修改表3.1 向表中添加記錄3.2 添加列3.3 修改列的數據類型3.4 刪除列3.5 表的重命名3.6 修改列名 4. 刪除表 MySQL表的操作 1. 創建表 CREATE TABLE table_…

博客系統【架構】

用戶管理 實現用戶的注冊、登錄、注銷等功能 使用Redis做緩存處理、阿里云短信服務 確保用戶身份驗證和安全性 使用Jwt來鑒權 userId (主鍵&#xff0c;自增長) username (唯一&#xff0c;用戶名)【用于普通登錄】email (唯一&#xff0c;用戶的電子郵件地址) password (存儲…

zabbix監控tomcat

一、zabbix監控Tomcat1.1 zbx-agent配置1.1.1 關閉防火墻&#xff0c;將安裝 Tomcat 所需軟件包傳到/opt目錄下1.1.2 安裝JDK1.1.3 設置JDK環境變量1.1.4 安裝啟動Tomcat1.1.5 配置 JMX 1.2 zbx-server配置1.2.1 安裝zabbix&#xff08;省略&#xff0c;可看上一篇博客&#xf…

Docker自動化部署安裝(十)之安裝SonarQube

這里選擇的是&#xff1a; sonarqube:9.1.0-community (推薦使用) postgres:9.6.23 數據庫(sonarqube7.9及以后便不再支持mysql&#xff0c;版本太低的話里面的一些插件會下載不成功的) 1、docker-sonarqube.yml文件 version: 3 services:sonarqube:container_name: sonar…

Redis詳解

Redis 簡介 Redis&#xff08;Remote Dictionary Server&#xff09;是一個開源的高性能鍵值對存儲數據庫&#xff0c;最初由 Salvatore Sanfilippo 開發&#xff0c;它在內存中存儲數據&#xff0c;并提供了持久化功能&#xff0c;可以將數據保存到磁盤中&#xff0c;是一種N…

? vue中$forceUpdate()

? vue中$forceUpdate() 1、認識 強制該組件重新渲染 鑒于 Vue 的全自動響應性系統&#xff0c;這個功能應該很少會被用到 $forceUpdate()迫使vue實例重新&#xff08;rander&#xff09;渲染虛擬DOM&#xff0c;注意并不是重新加載組件。 結合vue的生命周期&#xff0c;調用…

【論文閱讀】DEPCOMM:用于攻擊調查的系統審核日志的圖摘要(SP-2022)

Xu Z, Fang P, Liu C, et al. Depcomm: Graph summarization on system audit logs for attack investigation[C]//2022 IEEE Symposium on Security and Privacy (SP). IEEE, 2022: 540-557. 1 摘要 ? 提出了 DEPCOMM&#xff0c;這是一種圖摘要方法&#xff0c;通過將大圖劃…

簡單易懂的python生成器

目錄 定義使用 for 循環來迭代生成器對象斐波那契 定義 在 Python 中&#xff0c;使用了 yield 的函數被稱為生成器&#xff08;generator&#xff09;。Python 中的生成器&#xff08;Generator&#xff09;是一種特殊的迭代器&#xff0c;可以通過函數來創建。與常規函數不同…

Feign忽略Https的SSL最佳方案(且保證負載均衡將失效)

同時解決Https的SSL證書驗證問題和feign不支持Patch請求方法的問題 代碼 1. 工具類 OkHttpUtils.java import javax.net.ssl.*; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import j…

從0開始搭建ns3環境以及NetAnim簡單使用

一、環境準備 ns3是基于GNU/Linux平臺使用C開發的工具軟件&#xff0c;在windows系統中安裝使用ns3環境&#xff0c;可以使用虛擬機VMware并安裝ubuntu系統來實現&#xff0c;現將本教程所用到的虛擬機和系統鏡像放到網盤提供下載 名稱鏈接提取碼VMware Workstation 17 Proht…

簡約時尚的健康手表,智能守護每一刻,dido Y60上手

智能手表是現在很流行的一種智能設備&#xff0c;很多品牌都推出了各種各樣的產品&#xff0c;但是大部分都更側重功能和運動的方面&#xff0c;健康監測往往只是配角&#xff0c;而隨著人們對自己的健康越來越重視&#xff0c;有些朋友只是單純的需要一塊專業的健康監測手表。…

選擇任務管理軟件:哪個更適合你的需求?

隨著互聯網的發展&#xff0c;知識管理是可以成為企業獲得更大發展前景的神兵利器&#xff0c;任務協同&#xff0c;是服務于中小型團隊&#xff0c;或者大型機構的終端組織。來看看這款國外流行的任務管理軟件Zoho Projects。 任務管理是企業協同的重要組成部分。 任務管理是企…

Bitcoin 加速交易操作示例

這里以 Bitcoin Ordinals NFT 為例&#xff0c; 進行加速交易演示 第1步&#xff1a;新建子賬戶 溫馨提示&#xff1a;如果有多條魚未確認&#xff0c;也只需1個賬戶即可&#xff0c;不必搞多個子賬戶 第2步&#xff1a;切換回到老地址&#xff08;Account 1&#xff09; 第3步…

【Kubernetes】Kubernetes的PV和PVC的用法

PV、PVC 前言一、 存儲卷1. emptyDir 存儲卷1.1 概念1.2 實例 2. hostPath 存儲卷2.1 概念2.2 實例 3. nfs共享存儲卷 二、PV 和 PVC1. 概念1.1 PV1.2 PVC1.3 PVC 的使用邏輯1.4 創建機制1.5 PV 和 PVC 的生命力周期1.6 創建及銷毀 PV 的流程 2. PV 和 PVC 的創建2.1 查看定義2…

高并發內存池項目(C++實戰項目)

項目介紹 項目來源 本項目實現了一個高并發內存池&#xff0c;參考了Google的開源項目tcmalloc實現的簡易版&#xff1b;其功能就是實現高效的多線程內存管理。由功能可知&#xff0c;高并發指的是高效的多線程&#xff0c;而內存池則是實現內存管理的。 tcmalloc源碼 項目…

論智能與反智能的對立統一

智能和反智能可以被視為一個相對的概念&#xff0c;彼此存在一定的關聯和互補。在發展智能和反智能技術的過程中&#xff0c;我們必須始終牢記倫理和法律的原則&#xff0c;在合法和道德的框架內進行研究和應用&#xff0c;遵守相關的規定和限制。只有在這樣的前提下&#xff0…

linux的shell中 if 的運算符的使用

一、文件比較運算符 e filename 如果 filename存在&#xff0c;則為真 如&#xff1a; [ -e /var/log/syslog ]-d filename 如果 filename為目錄&#xff0c;則為真 如&#xff1a; [ -d /tmp/mydir ]-f filename 如果 filename為常規文件&#xff0c;則為真 如&#xff1a; […

基于vue開發的影視站模板(模仿西瓜視頻)

基于vue3開發的影視站模板, 對接蘋果cms10數據庫表, 采用pythondjangovue開發 效果預覽 http://101.43.124.118:8002 源碼地址 https://github.com/geeeeeeeek/appvideo 運行步驟 1.安裝依賴 npm install 2.運行 npm run dev 代碼說明 入口文件為main.js 接口請求的bas…

【計算機網絡】概述及數據鏈路層

每一層只依賴于下一層所提供的服務&#xff0c;使得各層之間相互獨立、靈活性好&#xff0c;已于實現和維護&#xff0c;并能促進標準化工作。 應用層&#xff1a;通過應用進程間的交互完成特定的網絡應用&#xff0c;HTTP、FTP、DNS&#xff0c;應用層交互的數據單元被稱為報…