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 相关文章推荐
firefox浏览器下javascript 拖动层效果与原理分析代码
Dec 04 Javascript
添加JavaScript重载函数的辅助方法2
Jul 04 Javascript
jQuery .tmpl(), .template()学习资料小结
Jul 18 Javascript
parentElement,srcElement的使用小结
Jan 13 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
Nov 17 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
Sep 05 Javascript
JS实现DIV高度自适应窗口示例
Feb 16 Javascript
angularJS深拷贝详解
Mar 23 Javascript
基于jQuery实现瀑布流页面
Apr 11 jQuery
JavaScript引用类型Function实例详解
Aug 09 Javascript
详解Vscode中使用Eslint终极配置大全
Nov 08 Javascript
基于Vant UI框架实现时间段选择器
Dec 24 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
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
快速配置PHPMyAdmin方法
2008/06/05 PHP
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
兼容ie和firefox js关闭代码
2008/12/11 Javascript
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
web网页按比例显示图片实现原理及js代码
2013/08/09 Javascript
Jquery 获取对象的几种方式介绍
2014/01/17 Javascript
js实现select跳转菜单新窗口效果代码分享(超简单)
2015/08/21 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
一文总结学习Python的14张思维导图
2017/10/17 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
python flask中静态文件的管理方法
2018/03/20 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
python爬取微信公众号文章的方法
2019/02/26 Python
python字典的常用方法总结
2019/07/31 Python
Python3之字节串bytes与字节数组bytearray的使用详解
2019/08/27 Python
python中树与树的表示知识点总结
2019/09/14 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
2020/06/11 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
opencv实现图像几何变换
2021/03/24 Python
大专自我鉴定范文
2013/10/23 职场文书
护理专业学生的求职信范文
2013/12/11 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android