国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

在vue中使用jointjs的方法

2024-05-06 15:20:26
字體:
來源:轉載
供稿:網(wǎng)友

在vue中引入joint.js的問題,之前在網(wǎng)上搜了很多,都沒有給出一個確切的答案,搗鼓了兩天終于弄明白了,做個記錄。
首先,我參考了一篇來自stackoverflow的文章點我點我

看完這篇文章,大家應該至少大致怎么做了,下面我們來具體看一下:

首先在vue項目中運行npm install jointjs --save

然后在入口文件,我的是main.js,也有可能是app.js中加入下面兩行,把joint.js和jquery作為全局變量

window.$ = require('jquery');window.joint = require('jointjs');

這里需要注意的是,joint.js依賴backbone、jquery和lodash,在通過script方式引入時,需要一一引入這些文件,但通過vue的npm時不需要,npm引入的joint.js已經(jīng)默認封裝好了這些。

通過這樣引入還不夠,可能會遇到圖可以正常加載,但無法拖拽的問題,遇到這些問題一般是joint.js和自己vue項目中的環(huán)境沖突了,導致無法讀取或者讀取錯誤。

我原來的項目中安裝了element、iview、axios、vuex、jquery,再安裝joint.js后,jointjs無法正常加載,后來重新建了一個項目,只安裝了element、axios、vuex,為避免jquery和joint.js中的jquery沖突,后來沒有裝jquery。

這樣就行了么?就可以運行上文鏈接中的例子了么?像這樣:

<template>  <div>    <h1>Home</h1>    <div id="myholder"></div>  </div></template><script>  export default {    created() {      let graph = new joint.dia.Graph;      let paper = new joint.dia.Paper({        el: $('#myholder'),        width: 600,        height: 200,        model: graph,        gridSize: 1      });      let rect = new joint.shapes.basic.Rect({        position: { x: 100, y: 30 },        size: { width: 100, height: 30 },        attrs: { rect: { fill: 'blue' }, text: { text: 'my box', fill: 'white' } }      });      let rect2 = rect.clone();      rect2.translate(300);      let link = new joint.dia.Link({        source: { id: rect.id },        target: { id: rect2.id }      });      graph.addCells([rect, rect2, link]);    }  }</script>

NoNoNo,注意到這里是把渲染放在了created的生命周期里,根據(jù)vue的生命周期,是無法找到joint的掛載div的el: $('#myholder'),也就是說,運行會報錯,我的解決方法是把div放了一個click,把joint的內容從created中拿出,放在methods中,需要點擊一下才可顯示哦,還不太完美,以待改進(~ ̄▽ ̄)~

也就是說,代碼會變成這樣:

<template>  <div>    <div id="myholder" @click="click_joint"></div>  </div></template><script>  export default {   methods:{     click_joint() {      let graph = new joint.dia.Graph;      let paper = new joint.dia.Paper({        el: $('#myholder'),        width: 600,        height: 200,        model: graph,        gridSize: 1      });      let rect = new joint.shapes.basic.Rect({        position: { x: 100, y: 30 },        size: { width: 100, height: 30 },        attrs: { rect: { fill: 'blue' }, text: { text: 'my box', fill: 'white' } }      });      let rect2 = rect.clone();      rect2.translate(300);      let link = new joint.dia.Link({        source: { id: rect.id },        target: { id: rect2.id }      });      graph.addCells([rect, rect2, link]);    }   }  }</script>            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 罗田县| 北京市| 金寨县| 唐河县| 小金县| 肇东市| 运城市| 齐河县| 巨野县| 文水县| 鹰潭市| 东光县| 历史| 瑞昌市| 宝清县| 河北区| 宁强县| 苍溪县| 集贤县| 潜江市| 青川县| 石嘴山市| 永登县| 岱山县| 德阳市| 台山市| 陇川县| 马边| 临西县| 高邑县| 莱州市| 昭平县| 芦山县| 永城市| 阿拉善左旗| 三穗县| 慈溪市| 松江区| 永年县| 繁峙县| 冀州市|