이번에는 Vue에서 Jointjs를 사용하는 방법에 대해 자세히 알려드리겠습니다. Vue에서 Jointjs를 사용할 때 주의사항은 무엇인가요? 실제 사례를 살펴보겠습니다.
이 기사를 읽은 후에는 최소한 이를 수행하는 방법에 대한 대략적인 아이디어를 가져야 합니다. 자세히 살펴보겠습니다.
먼저 vue 프로젝트에 npm installjoinjs --save를 실행하세요
그런 다음 항목에서 file, 내 것이 main .js이거나, app.js에 다음 두 줄을 추가하고,join.js 및 jquery를 전역 변수로 사용할 수도 있습니다
window.$ = require('jquery'); window.joint = require('jointjs');
여기서join.js가 의존한다는 점에 유의해야 합니다. backbone, jquery 및 lodash 스크립트를 통해 도입할 때 이러한 파일을 하나씩 가져와야 하지만 vue의 npm을 통해 필요하지 않습니다.
이런 방식으로 도입하는 것만으로는 충분하지 않습니다. 이미지를 정상적으로 로드할 수 있지만 드래그 앤 드롭할 수 없는 문제가 발생할 수 있습니다. 이러한 문제가 발생하는 경우 일반적으로 Joint.js와 환경 간의 충돌로 인해 발생합니다. 자신의 vue 프로젝트에서 읽거나 읽을 수 없게 됩니다.
원래 프로젝트에 iview, axios, vuex, jquery를 설치했는데,join.js를 설치한 후 정상적으로 로드되지 않고 프로젝트를 다시 빌드하고 순서대로 설치했습니다. jquery를 피하기 위해 Joint.js에서 jquery와 충돌이 발생하여 나중에 jquery가 설치되지 않았습니다.
이거 괜찮아요? 위 링크의 예제를 실행할 수 있나요? 이렇게:
<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, 렌더링이 생성된 lifecycle에 배치된다는 점에 유의하세요. vue의 라이프사이클에 따르면 조인트 마운팅 p의 el을 찾을 수 없습니다. $('#myholder'), In other 즉, 실행 시 오류가 보고됩니다. 내 해결 방법은 p를 클릭하고 생성된 조인트의 내용을 가져와서 표시하려면 클릭해야 한다는 것입니다. 아직은 기다려보겠습니다. 개선(~ ̄▽ ̄)~
즉, 코드는 다음과 같습니다.
<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>
참고로 npm을 통해 도입할 경우에는jointjs만 설치하면 됩니다. lodash, backbone, jquery를 설치하거나 페이지에join.css 파일을 가져올 필요가 없습니다. 저자는 이전에 스크립트를 통해 조인트.js를 여러 번 시도했는데 성공하지 못했습니다. 다른 친구들이 성공적으로 시도하면 자유롭게 공유해 주세요.
이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 도서:
Angular CLI를 사용한 유닛 및 E2E 테스트 단계에 대한 자세한 설명
위 내용은 Vue에서 Jointjs를 사용하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!