Home > Article > Web Front-end > Detailed description of using jointjs in vue
This time I will bring you detailed instructions for using jointjs in vue. What are the precautions for using jointjs in vue? The following is a practical case, let's take a look.
After reading this article, you should at least have a rough idea of how to do it. Let’s take a look at it in detail:
First run npm install jointjs --save
## in the vue project #Then add the following two lines to theentry file, mine is main.js, or it may be app.js, and use joint.js and jquery as global variables
window.$ = require('jquery'); window.joint = require('jointjs');You need to pay attention here What's interesting is that joint.js relies on backbone, jquery and lodash. When introducing it through script, you need to import these files one by one, but it is not necessary when using npm of vue. The joint.js introduced by npm has already encapsulated these files by default. It is not enough to introduce it in this way. You may encounter the problem that the diagram can be loaded normally, but cannot be dragged. When encountering these problems, it is usually caused by the conflict between joint.js and the environment in your own vue project, resulting in the inability to read. Fetch or read error. I installed element, iview, axios, vuex, and jquery in my original project. After installing joint.js, jointjs could not be loaded normally. Later, I rebuilt a project and only installed element, axios, and vuex. , in order to avoid conflicts between jquery and jquery in joint.js, jquery was not installed later. Is this enough? Can I run the example in the link above? Like this:
<template> <p> <h1>Home</h1> <p id="myholder"></p> </p> </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, notice that the rendering is placed in the In other words, the code will become like this:
<template> <p> <p id="myholder" @click="click_joint"></p> </p> </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>To point out, just install jointjs when introduced through npm Yes, there is no need to install lodash, backbone, jquery, or import the joint.css file into the page. The author previously introduced joint.js through script. I tried many times without success. I kept getting errors when reading the joint.js file. If other friends try successfully, please feel free to share. I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website! Recommended reading:
Detailed explanation of unit and E2E testing steps with Angular CLI
The above is the detailed content of Detailed description of using jointjs in vue. For more information, please follow other related articles on the PHP Chinese website!