VueMindmap is a vue component for mindnode maps inspired by react-mindmap.
npm install --save vue-mindmap
import Vue from 'vue'
import VueMindmap from 'vue-mindmap'
// You need a specific loader for CSS files like https://github.com/webpack/css-loader
import 'vue-mindmap/dist/vue-mindmap.css'
Vue.use(VueMindmap)
<template>
<mindmap
:nodes="nodes"
:connections="connections"
:editable="true"
/>
</template>
<script>
export default {
name: 'MyMindmap',
data() {
return {
nodes: [...],
connections: [...]
}
}
}
</script>
<!-- Include after Vue -->
<!-- Local files -->
<link rel="stylesheet" href="vue-mindmap/dist/vue-mindmap.css"></link>
<script src="vue-mindmap/dist/vue-mindmap.js"></script>
<!-- From CDN -->
<link rel="stylesheet" href="https://unpkg.com/vue-mindmap/dist/vue-mindmap.css"></link>
<script src="https://unpkg.com/vue-mindmap"></script>
Prop | Type | Default | Description |
---|---|---|---|
nodes | Array | [ ] | Array of objects used to render nodes. |
connections | Array | [ ] | Array of objects used to render connections. |
subnodes | Array | [ ] | Array of objects used to render subnodes. |
editable | Boolean | false | Enable editor mode, which allows to move around nodes. |
Array of objects used to render nodes. Below an example of the node structure.
{
"text": "python",
"url": "http://www.wikiwand.com/en/Python_(programming_language)",
"fx": -13.916222252976013,
"fy": -659.1641376795345,
"category": "wiki",
"note": ""
}
The possible attributes are:
Array of objects used to render connections. Below an example of the connection structure.
{
"source": "python",
"target": "basics",
"curve": {
"x": -43.5535,
"y": 299.545
}
}
The possible attributes are:
Array of objects used to render subnodes. The structure is the same as for nodes with two additional attributes:
Here’s a list of all CSS classes for styling:
svg
element containing the map;foreignObject
element representing a node;foreignObject
element representing a node in editor mode;foreignObject
element containing all subnodes of a given node;div
element containing a subnode;path
element for each connection;img
tag for emojinpm run dev
npm run dev:coverage
Bundle the js and css of to the dist
folder:
npm run build
Live demo built on top of the awesome codesandbox.
Author: anteriovieira
GitHub: https://github.com/anteriovieira/vue-mindmap
#vuejs #javascript #vue-js