vue中使用mxgraph的方法实例代码详解


Posted in Javascript onMay 17, 2019

1、npm 引入

npm install mxgraph --save

2、这个模块可以使用require()方法进行加载。它将返回一个接受对象作为选项的工厂函数。必须将mxBasePath选项提供给工厂函数,而不是将其定义为一个全局变量。

var mxgraph = require("mxgraph")(
{ // 以下地址不需要修改
mxImageBasePath: "./src/images", 
mxBasePath: "./src"
})

工厂函数返回一个“命名空间对象”,通过它可以访问mxGraph包的所有对象。例如,mxEvent对象在mxgraph.mxEvent中可用。

var mxEvent = mxgraph.mxEvent;
mxEvent.disableContextMenu(container);

这个引入是官方提供的方式,但是与vue结合使用的时候,方法的指向会发生变化,所以做了以下修改

避免方法的指向发生变化,将其挂载到window上面:

建立index.js如下:

import mx from 'mxgraph';
const mxgraph = mx({
 mxImageBasePath: './src/images',
 mxBasePath: './src'
});
// decode bug https://github.com/jgraph/mxgraph/issues/49
window.mxGraph = mxgraph.mxGraph;
window.mxGraphModel = mxgraph.mxGraphModel;
window.mxEditor = mxgraph.mxEditor;
window.mxGeometry = mxgraph.mxGeometry;
window.mxDefaultKeyHandler = mxgraph.mxDefaultKeyHandler;
window.mxDefaultPopupMenu = mxgraph.mxDefaultPopupMenu;
window.mxStylesheet = mxgraph.mxStylesheet;
window.mxDefaultToolbar = mxgraph.mxDefaultToolbar;
export default mxgraph;

页面引入:

import mxgraph from 'index.js';
const {mxGraph, mxClient, mxCodec, mxUtils, mxConstants, mxPerimeter} = mxgraph;

3、书写‘hello world' demo

mounted () {
      if (!mxClient.isBrowserSupported()) {
        // 判断是否支持mxgraph
        mxUtils.error('Browser is not supported!', 200, false);
      } else {
        // 再容器中创建图表
        let container = document.getElementById('graphContainer');
        let MxGraph = mxGraph;
        let MxCodec = mxCodec;
        var graph = new MxGraph(container);
        // 生成 Hello world!
        var parent = graph.getDefaultParent();
        graph.getModel().beginUpdate();
        try {
          var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 200, 80, 30);
          var v2 = graph.insertVertex(parent, null, 'World', 200, 150, 80, 30);
          var v3 = graph.insertVertex(parent, null, 'everyBody!', 300, 350, 60, 60);
          graph.insertEdge(parent, null, '', v1, v2);
          graph.insertEdge(parent, null, '', v2, v3);
          graph.insertEdge(parent, null, '', v1, v3);
        } finally {
          // Updates the display
          graph.getModel().endUpdate();
        }
        // 打包XML文件
        let encoder = new MxCodec();
        let xx = encoder.encode(graph.getModel());
        // 保存到getXml参数中
        this.getXml = mxUtils.getXml(xx);
      }
    }

总结

以上所述是小编给大家介绍的vue中使用mxgraph的方法实例代码详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
javascript 面向对象继承
Nov 26 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
Apr 27 Javascript
三种AngularJS中获取数据源的方式
Feb 02 Javascript
JavaScript 不支持 indexof 该如何解决
Mar 30 Javascript
基于zepto.js简单实现上传图片
Jun 21 Javascript
浅谈Javascript事件对象
Feb 05 Javascript
canvas滤镜效果实现代码
Feb 06 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
Feb 14 Javascript
vuejs父子组件之间数据交互详解
Aug 09 Javascript
AngularJS 表单验证手机号的实例(非必填)
Nov 12 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
Apr 17 Javascript
vue实现路由监听和参数监听
Oct 29 Javascript
vue中引入mxGraph的步骤详解
May 17 #Javascript
微信小程序云开发 搭建一个管理小程序
May 17 #Javascript
微信小程序云开发实现增删改查功能
May 17 #Javascript
微信小程序云开发实现云数据库读写权限
May 17 #Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
May 17 #Javascript
微信小程序云开发实现数据添加、查询和分页
May 17 #Javascript
js常用正则表达式集锦
May 17 #Javascript
You might like
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
PHP读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
php 问卷调查结果统计
2015/10/08 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
在JavaScript中判断整型的N种方法示例介绍
2014/06/18 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
JS 对java返回的json格式的数据处理方法
2016/12/05 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
Python如何判断数独是否合法
2016/09/08 Python
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
利用Python实现kNN算法的代码
2019/08/16 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
2019/09/26 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
2014年人民警察入党思想汇报
2014/10/12 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
JavaScript实现简单计时器
2021/06/22 Javascript
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
python 学习GCN图卷积神经网络
2022/05/11 Python