Simple and lightweight Trix rich-text editor Vue.js component for writing daily
- A simple and lightweight rich-text editor
- Binding with your
v-modeleasily - Auto-save editor data temporally what you has typed into the form input in case something goes wrong (for example, the browser could crash or you could accidentally refresh the page without submit saving)
NPM
$npm install --save vue-trixYARN
$yarn add vue-trixin the main.js, import the package as a global component.
import "vue-trix";import VueTrix from "vue-trix";
export default {
// ...
components: {
VueTrix
}
};Add VueTrix component into *.vue template
<template>
<!-- ... -->
<VueTrix v-model="editorContent" placeholder="Enter content" localStorage/>
<!-- ... -->
</template> <form ...>
<VueTrix inputId="editor1" v-model="editorContent" placeholder="enter your content..."/>
</form>inputId: This is referencedidof the hidden input field definedinputName: This is referencednameof the hidden input field defined, default value iscontentplaceholder: The placeholder attribute specifies a short hint that describes the expected value of a editorlocalStorage: The boolean attribute allows saving editor state into browser's localStorage
In case, you want to load initial data from database then display into the editor. you can use v-model directive with local component's state.
// Declare local component's state is loaded from database
export default {
// ...
data() {
return {
editorContent: "<h1>Editor contents</h1>"
};
}
// ...
}; // Assign to v-model directive
<template>
<!-- ... -->
<VueTrix v-model="editorContent"/>
<!-- ... -->
</template>The local component's state will be changed reactively when you modified contents inside the trix editor UI. Therefore, you need to watch the local state for updating content back to database
export default {
// ...
methods: {
updateEditorContent(value) {
// Update new content into the database via state mutations.
}
},
watch: {
editorContent: {
handler: "updateEditorContent"
}
}
// ...
};The <VueTrix/> element emits several events which you can use to observe and respond to changes in editor state.
-
@trix-attachment-addfires after an attachment is added to the document. You can access the Trix attachment object through the attachment property on the event. If the attachment object has a file property, you should store this file remotely and set the attachment’s URL attribute. -
@trix-attachment-removefires when an attachment is removed from the document. You can access the Trix attachment object through the attachment property on the event. You may wish to use this event to clean up remotely stored files.
If you're interested in contributing to Vue-Trix, please consider to submitting a pull request or post issues.

