A JSON Tree View Component for Vue.js
You can check out the demo on JSFiddle and read the Blogpost called Building a JSON Tree View Component in Vue.js from Scratch in Six Steps that lead to the creation of this library.
Install the plugin with npm:
npm install --save vue-json-tree-view
Then, in your Application JavaScript, add:
import TreeView from "vue-json-tree-view"
Vue.use(TreeView)
Done.
Put the tree-view
element into your HTML where you want the Tree View to appear.
<div>
<tree-view :data="jsonSource" :options="{maxDepth: 3}"></tree-view>
</div>
data
The JSON to be displayed. Expects a valid JSON object.
options
The defaults are:
{
maxDepth: 4,
rootObjectKey: "root",
modifiable: false,
link: false,
limitRenderDepth: false
}
root
.modifiable="true"
).If modifiable
is true and you want to take the updated json data, you must register event handler as v-on:change-data=...
. Only one argument is passed that is updated data - data
.
<div>
<tree-view :data="jsonSource" :options="{modifiable: true}" @change-data="onChangeData"></tree-view>
</div>
// in your vue code
...
methods: {
onChangeData: function(data) {
console.log(JSON.stringify(data))
}
},
...
All leaves will have their type indicated as a CSS class, like tree-view-item-value-string
. Supported types: String, Number, Function, Boolean and Null Values.
Keys can also be styled. For instance to make labels red:
.tree-view-item-key {
color: red;
}
Contributions to this repo are very welcome as they are what has helped it become what it is today. Simply raise an issue with new ideas or submit a pull request.
A github action automatically deploys changes when they are merged into the master branch.