vue 集成 vis-network 实现网络拓扑图的方法
vis.js 网站
https://visjs.org/
vs code下安装命令
npminstallvis-network
在vue 下引入vis-network组件
constvis=require("vis-network/dist/vis-network.min.js"); require("vis-network/dist/vis-network.min.css");
例子代码使用
letDIR="/jtopo/"; letnodes=[ {id:1,shape:"circularImage",image:DIR+"server.png"}, {id:2,shape:"circularImage",image:DIR+"server.png"}, {id:3,shape:"circularImage",image:DIR+"server.png"}, { id:4, shape:"circularImage", image:DIR+"gather.png", label:"picturesbythisguy!" }, {id:5,shape:"circularImage",image:DIR+"wanjet.png"}, {id:6,shape:"circularImage",image:DIR+"center.png"}, {id:7,shape:"circularImage",image:DIR+"cloud.png"}, {id:8,shape:"circularImage",image:DIR+"center.png"}, {id:9,shape:"circularImage",image:DIR+"wanjet.png"}, {id:10,shape:"circularImage",image:DIR+"gather.png"} //{id:11,shape:"circularImage",image:DIR+"11.png"}, //{id:12,shape:"circularImage",image:DIR+"12.png"}, //{id:13,shape:"circularImage",image:DIR+"13.png"}, //{id:14,shape:"circularImage",image:DIR+"14.png"}, //{ //id:15, //shape:"circularImage", //image:DIR+"missing.png", //brokenImage:DIR+"missingBrokenImage.png", //label:"whenimages\nfail\ntoload" //}, //{ //id:16, //shape:"circularImage", //image:DIR+"anotherMissing.png", //brokenImage:DIR+"9.png", //label:"fallbackimageinaction" //} ]; letedges=[ {from:1,to:4}, {from:2,to:4}, {from:3,to:4}, {from:4,to:5}, {from:5,to:6}, {from:6,to:7}, {from:8,to:7}, {from:9,to:8}, {from:10,to:9} //{from:8,to:10}, //{from:10,to:11}, //{from:11,to:12}, //{from:12,to:13}, //{from:13,to:14}, //{from:9,to:16} ]; for(leti=1;i<=100;i++){ num=i+10; nodes.push({ id:num, label:num.toString() }); edges.push({from:num,to:10}); } letdata={ nodes:nodes, edges:edges }; letcontainer=document.getElementById("mynetwork"); //letoptions={}; letoptions={ nodes:{ font:{ color:"white",//字体的颜色 size:30//显示字体大小 }, scaling:{ min:16, max:32//缩放效果比例 }, borderWidth:0, color:{ border:"white", background:"white"//若是引用图标,背景颜色 } }, groups:{ ws:{ //系统定义的形状dot等这些官网都可以找到 shape:"dot", color:"white" } }, edges:{ //连接线的样式 color:{ color:"white", highlight:"white", hover:"#848484", inherit:"from", opacity:1.0 } }, layout:{ randomSeed:1//配置每次生成的节点位置都一样,参数为数字1、2等 }, physics:{ //barnesHut:{gravitationalConstant:-30000}, barnesHut:{ gravitationalConstant:-80000, springConstant:0.001, springLength:200 }, stabilization:false //{iterations:2500} }, interaction:{ //navigationButtons:true, hover:true,//鼠标移过后加粗该节点和连接线 selectConnectedEdges:false,//选择节点后是否显示连接线 hoverConnectedEdges:false,//鼠标滑动节点后是否显示连接线 tooltipDelay:200, zoomView:true//是否能缩放画布 }, edges:{ shadow:true,//连接线阴影配置 smooth:true//是否显示方向箭头 //arrows:{to:true}//箭头指向from节点 } }; that.network=newvis.Network(container,data,options); that.network.on("click",function(params){});
设置stabilization:false 可以快速生成10000个节点
总结
以上所述是小编给大家介绍的vue集成vis-network实现网络拓扑图的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!