国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue3+ts使用antv/x6 + 自定義節(jié)點

這篇具有很好參考價值的文章主要介紹了vue3+ts使用antv/x6 + 自定義節(jié)點。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

使用 2.x 版本 x6.antv 新官網(wǎng):

安裝

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

項目結構
vue3+ts使用antv/x6 + 自定義節(jié)點,vue.js,javascript,圖形渲染

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、注冊節(jié)點

渲染 Vue 節(jié)點,這個文檔完全夠用

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

節(jié)點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?: string
  nodeName: 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、在畫布引入并注冊自定義節(jié)點,配置節(jié)點信息

主畫布: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,
});// 注冊自定義節(jié)點
const TeleportContainer = getTeleport();// 自定義節(jié)點優(yōu)化
const refreshData = (data)=>{//渲染節(jié)點數(shù)據(jù)
    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,可選,節(jié)點的唯一標識
                shape: 'node-item',
                x: 40,       // Number,必選,節(jié)點位置的 x 值
                y: 40,       // Number,必選,節(jié)點位置的 y 值
                data: {
                    nodeId: 'node1',
                    nodeName: '節(jié)點1',
                },
            }
        ],
        edges:[]
    }
    refreshData(data)
}
onMounted(()=>{
    graphInit()
})
</script>

展示
vue3+ts使用antv/x6 + 自定義節(jié)點,vue.js,javascript,圖形渲染
小小預告:
下一篇 自定義節(jié)點樣式
再下一篇 vue3 + antv/x6 實現(xiàn)拖拽側邊欄節(jié)點到畫布文章來源地址http://www.zghlxwxcb.cn/news/detail-650391.html

到了這里,關于vue3+ts使用antv/x6 + 自定義節(jié)點的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • vue2中實現(xiàn)Antv g6 流程圖 以及自定義節(jié)點

    vue2中實現(xiàn)Antv g6 流程圖 以及自定義節(jié)點

    本案例 antv g6版本: \\\"@antv/g6\\\": \\\"^3.4.8\\\", 效果: 1.引入antv g6和echarts差不多 一定記得給盒子設置寬高 初學者一個,以上如有問題或者錯誤,多謝指出

    2024年02月13日
    瀏覽(98)
  • UVeiw 組件的使用(更多自定義案例和解決方案),Vue3 +ts 版本 #Selected組件 #Vue 3 # Ts
  • uniapp使用vue3和ts開發(fā)小程序自定義tab欄,實現(xiàn)自定義凸出tabbar效果

    uniapp使用vue3和ts開發(fā)小程序自定義tab欄,實現(xiàn)自定義凸出tabbar效果

    要實現(xiàn)自定義的tabbar效果,可以使用自定義tab覆蓋主tab來實現(xiàn),當程序啟動或者從后臺顯示在前臺時隱藏自帶的tab來實現(xiàn)。自定義一個tab組件,然后在里面實現(xiàn)自定義的邏輯。 組件中所使用的組件api可以看:Tabbar 底部導航欄 | uView 2.0 - 全面兼容 nvue 的 uni-app 生態(tài)框架 - uni-

    2024年02月04日
    瀏覽(26)
  • vue3+vite+ts 通過svg-sprite-loader 插件使用自定義圖標

    vue3+vite+ts 通過svg-sprite-loader 插件使用自定義圖標

    第一步 首先下載svg插件和fs模塊; 后續(xù)需要用到 第二步新建文件夾和文件 將下載好的svg文件放入新建好的svg文件夾中 index.vue 代碼 這里是創(chuàng)建一個 svg-icon / 組件 index.ts 代碼 第三步 打開main.ts 將創(chuàng)建好的 svg-icon / 組件注入到全局組件 第四步 在根目錄打開vite.config.ts ** 如果引

    2024年02月15日
    瀏覽(19)
  • vue3+ts+element-plus 之使用node.js對接mysql進行表格數(shù)據(jù)展示

    vue3+ts+element-plus 之使用node.js對接mysql進行表格數(shù)據(jù)展示

    * 初始化node 查看node是否安裝 node -v 初始化命令 npm init 初始化配置解釋如下: 完成后會有一個package.json文件 * 安裝可能用到的依賴 根據(jù)需求安裝,我這里需要對接mysql,安裝依賴 ,我是一次性安裝完,后邊會直接使用,也可以邊安裝邊使用。如下 安裝成功如下: * 配置文件

    2024年02月15日
    瀏覽(54)
  • vue3 ts 定義全局變量

    在 Vue3 中使用 TypeScript 定義全局變量可以這樣做: 創(chuàng)建一個文件,如 global.d.ts ,并在其中聲明全局變量。 在 main.ts 或其他入口文件中引入該文件。 在需要使用全局變量的地方直接使用即可。 注意,這種方式只能用于定義全局變量,不能用于定義全局函數(shù)或類。

    2024年02月17日
    瀏覽(16)
  • AntV G6自定義節(jié)點(多邊形+圖片)

    AntV G6自定義節(jié)點(多邊形+圖片)

    要求:拓撲節(jié)點根據(jù)不同的設備類型顯示不同的圖標,且根據(jù)設備狀態(tài)顯示不同的背景色,鼠標點擊選中節(jié)點還可高亮 不同設備不同圖標,不同狀態(tài)不同背景色 鼠標點擊選中節(jié)點高亮

    2024年02月09日
    瀏覽(225)
  • 了解AntV/x6

    了解AntV/x6

    先放官網(wǎng)和圖片,最好的學習地方仍然是官網(wǎng)。 官網(wǎng):https://x6.antv.antgroup.com/ 介紹:X6 是基于 HTML 和 SVG 的圖編輯引擎,提供低成本的定制能力和開箱即用的內(nèi)置擴展,方便我們快速搭建 DAG 圖、ER 圖、流程圖、血緣圖 等應用。 這個流程圖其實是Echarts沒有的,相信很多和我

    2024年02月05日
    瀏覽(18)
  • antv/x6繪圖 2.2.1

    網(wǎng)址:https://x6.antv.antgroup.com/ 文檔:https://x6.antv.antgroup.com/tutorial/about API:https://x6.antv.antgroup.com/api/graph/graph praph配置:https://x6.antv.antgroup.com/api/graph/graph#connecting 介紹:X6 是基于 HTML 和 SVG 的圖編輯引擎,提供低成本的定制能力和開箱即用的內(nèi)置擴展,方便我們快速搭建 DAG

    2024年02月14日
    瀏覽(14)
  • antv x6 神奇的圖片邊框

    昨天才把html節(jié)點中的圖片轉(zhuǎn)成base格式的,今天就發(fā)現(xiàn)一個用戶體驗的問題;那么是啥呢?就是我從左側的樹形菜單中拖拽節(jié)點的時候(鼠標按下也是同樣問題),發(fā)現(xiàn)節(jié)點的圖片區(qū)域那里會出現(xiàn)一個邊框,持續(xù)時間不是很長,就幾毫秒的時間,但是當你連續(xù)拖拽幾個不同節(jié)

    2023年04月27日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包