Simple and lightweight Trix rich-text editor Vue.js component for writing daily
Table of Contentsv-model
easily.YARN Or directly from latest Github repo  $npm install --save vue-trix
Mount Mount with global  $npm install --save hanhdt/vue-trix
in the main.js
, import the package as a global component.
Setup with Nuxt.js (SSR)import VueTrix from "vue-trix";
Â
export default {
 Â
  components: {
    VueTrix
  }
};
Create mounting plugin file
import Vue from "vue";
import VueTrix from "vue-trix";
Â
Vue.use(VueTrix);
Update Nuxt.js config file
Component Usages Create a simple editor in your single component fileplugins: [{ src: "~/plugins/vue_trix", mode: "client" }];
Add VueTrix
component into *.vue
template
Integrating with Forms  <template>
    <!-- ... -->
    <VueTrix v-model="editorContent" placeholder="Enter content" localStorage/>
    <!-- ... -->
  </template>
Props descriptions  <form ...>
    <VueTrix inputId="editor1" v-model="editorContent" placeholder="enter your content..."/>
  </form>
inputId
: This is referenced id
of the hidden input field defined, it is optional.inputName
: This is referenced name
of the hidden input field defined, default value is content
.placeholder
: The placeholder option attribute specifies a short hint that describes the expected value of a editor.autofocus
: Automatically focus the editor when it loadsdisabledEditor
: This prop will put the editor in read-only mode.localStorage
: The boolean attribute allows saving editor state into browser's localStorage (optional, default is false
).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.
export default {
 Â
  data() {
    return {
      editorContent: "<h1>Editor contents</h1>"
    };
  }
 Â
};
Track data changes  // 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
Binding attachment eventsexport default {
 Â
  methods: {
    updateEditorContent(value) {
     Â
    }
  },
  watch: {
    editorContent: {
      handler: "updateEditorContent"
    }
  }
 Â
};
The <VueTrix/>
element emits several events which you can use to observe and respond to changes in editor state.
@trix-file-accept
fires before an attachment is added to the document. If you donât want to accept dropped or pasted files, call preventDefault() on this event.
@trix-attachment-add
fires 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-remove
fires 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.
Add binding event listener to trix-attachment-add
  <template>
    <!-- ... -->
    <VueTrix @trix-attachment-add="handleAttachmentChanges"/>
    <!-- ... -->
  </template>
In Javascript
Trix document Contributing  const remoteHost = 'your remote host';
Â
  function handleAttachmentChanges(event) {
    // 1. get file object
    let file = event.attachment.file;
Â
    // 2. upload file to remote server with FormData
    // ...
Â
    // 3. if upload success, set back the attachment's URL attribute
    // @param object data from remote server response data after upload.
    let attributes = {
      url: remoteHost + data.path,
      href: remoteHost + data.path
    };
    event.attachment.setAttributes(attributes);
  }
If you're interested in contributing to Vue-Trix or share your opinions, please consider to submitting a pull request or post issues. Also, I will try to code-self documentation.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4