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模拟的Ping效果代码 (Web Ping)
Mar 13 Javascript
Webkit的跨域安全问题说明
Sep 13 Javascript
广泛收集的jQuery拖放插件集合
Apr 09 Javascript
jquery delay()介绍及使用指南
Sep 02 Javascript
JS实现下拉菜单赋值到文本框的方法
Aug 18 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
Sep 19 Javascript
jquery与ajax获取特殊字符实例详解
Jan 08 Javascript
JS实现的简单拖拽功能示例
Mar 13 Javascript
jQuery获取随机颜色的实例代码
May 21 jQuery
代码整洁之道(重构)
Oct 25 Javascript
Nuxt.js SSR与权限验证的实现
Nov 21 Javascript
Node.js 的 GC 机制详解
Jun 03 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中执行系统命令的方法
2015/03/21 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
对php 判断http还是https,以及获得当前url的方法详解
2019/01/15 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
Puppet的一些技巧
2018/09/17 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
python中zip()方法应用实例分析
2016/04/16 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
在CMD命令行中运行python脚本的方法
2018/05/12 Python
Python实现串口通信(pyserial)过程解析
2019/09/25 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
python 使用shutil复制图片的例子
2019/12/13 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
方太官方网上商城:销售方太抽油烟机、燃气灶、消毒柜等
2017/01/17 全球购物
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
C语言笔试集
2012/07/24 面试题
营销总监岗位职责范本
2014/02/26 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL