The ONLYOFFICE Docs Vue.js component integrates ONLYOFFICE Docs into Vue.js projects.
This procedure requires Node.js (and npm).
This procedure creates a basic Vue.js application and installs an ONLYOFFICE Docs editor in it.
Open a command line or command prompt and create a Vue.js 3.x project named onlyoffice-vue-demo using the Create Vue Tool:
npm create vue@3
Go to the newly created directory:
cd onlyoffice-vue-demo
Install ONLYOFFICE Docs Vue.js component from npm and save it to the package.json file with --save:
npm install --save @onlyoffice/document-editor-vue
Open the ./src/App.vue file in the onlyoffice-vue-demo project and replace its contents with the following code:
<template> <DocumentEditor id="docEditor" documentServerUrl="http://documentserver/" :config="config" :events_onDocumentReady="onDocumentReady" :onLoadComponentError="onLoadComponentError" /> </template> <script lang="ts"> import { defineComponent } from 'vue'; import { DocumentEditor } from "@onlyoffice/document-editor-vue"; export default defineComponent({ name: 'ExampleComponent', components: { DocumentEditor }, data() { return { config: { document: { fileType: "docx", key: "Khirz6zTPdfd7", title: "Example Document Title.docx", url: "https://example.com/url-to-example-document.docx" }, documentType: "word", editorConfig: { callbackUrl: "https://example.com/url-to-callback.ashx" } } } }, methods: { onDocumentReady() { console.log("Document is loaded"); }, onLoadComponentError (errorCode, errorDescription) { switch(errorCode) { case -1: // Unknown error loading component console.log(errorDescription); break; case -2: // Error load DocsAPI from http://documentserver/ console.log(errorDescription); break; case -3: // DocsAPI is not defined console.log(errorDescription); break; } } }, }); </script>
Replace the following lines with your own data:
Test the application using the Vue development server:
To start the development server, navigate to the onlyoffice-vue-demo directory and run:
npm run dev
The easiest way to deploy the application to a production environment is to install serve and create a static server:
Install the serve package globally:
npm install -g serve
Serve your static site on the 3000 port:
serve -s build
Another port can be adjusted using the -l or --listen flags:
serve -s build -l 4000
To serve the project folder, go to it and run the serve command:
cd onlyoffice-vue-demo serve
Now you can deploy the application to the created server:
Navigate to the onlyoffice-vue-demo directory and run:
npm run build
The dist directory will be created with a production build of your app.
Copy the contents of the onlyoffice-vue-demo/dist directory to the root directory of the web server (to the onlyoffice-vue-demo folder).
The application will be deployed on the web server (http://localhost:3000 by default).
Name | Type | Default | Description |
id* | string | null | Component unique identifier. |
documentServerUrl* | string | null | Address of ONLYOFFICE Docs. |
config* | object | null | Generic configuration object for opening a file with token. |
document_fileType | string | null | The type of the file. |
document_title | string | null | The file name. |
documentType | string | null | The document type. |
height | string | null | Defines the document height in the browser window. |
type | string | null | Defines the platform type used to access the document (desktop, mobile or embedded). |
width | string | null | Defines the document width in the browser window. |
events_onAppReady | (event: object) => void | null | The function called when the application is loaded into the browser. |
events_onDocumentStateChange | (event: object) => void | null | The function called when the document is modified. |
events_onMetaChange | (event: object) => void | null | The function called when the meta information of the document is changed via the meta command. |
events_onDocumentReady | (event: object) => void | null | The function called when the document is loaded into the document editor. |
events_onInfo | (event: object) => void | null | The function called when the application opened the file. |
events_onWarning | (event: object) => void | null | The function called when a warning occurs. |
events_onError | (event: object) => void | null | The function called when an error or some other specific event occurs. |
events_onRequestSharingSettings | (event: object) => void | null | The function called when the user is trying to manage document access rights by clicking Change access rights button. |
events_onRequestRename | (event: object) => void | null | The function called when the user is trying to rename the file by clicking the Rename... button. |
events_onMakeActionLink | (event: object) => void | null | The function called when the user is trying to get link for opening the document which contains a bookmark, scrolling to the bookmark position. |
events_onRequestInsertImage | (event: object) => void | null | The function called when the user is trying to insert an image by clicking the Image from Storage button. |
events_onRequestSaveAs | (event: object) => void | null | The function called when the user is trying to save file by clicking Save Copy as... button. |
events_onRequestMailMergeRecipients | (event: object) => void | null | The function called when the user is trying to select recipients data by clicking the Mail merge button. |
events_onRequestCompareFile | (event: object) => void | null | The function called when the user is trying to select document for comparing by clicking the Document from Storage button. |
events_onRequestEditRights | (event: object) => void | null | The function called when the user is trying to switch the document from the viewing into the editing mode by clicking the Edit Document button. |
events_onRequestHistory | (event: object) => void | null | The function called when the user is trying to show the document version history by clicking the Version History button. |
events_onRequestHistoryClose | (event: object) => void | null | The function called when the user is trying to go back to the document from viewing the document version history by clicking the Close History button. |
events_onRequestHistoryData | (event: object) => void | null | The function called when the user is trying to click the specific document version in the document version history. |
events_onRequestRestore | (event: object) => void | null | The function called when the user is trying to restore the file version by clicking the Restore button in the version history. |
Install Storybook to develop UI components in isolation:
Change the address of the document server in the config/default.json file:
"documentServerUrl": "http://documentserver/"
where the documentserver is the name of the server with ONLYOFFICE Docs installed.
Build Storybook with the following command:
npm run build-storybook
Start Storybook:
npm run storybook
Clone project from the GitHub repository:
git clone https://github.com/ONLYOFFICE/document-editor-vue
Install the project dependencies:
npm install
Test the component:
npm run test
Build the project:
npm run build
Create the package:
npm pack
In case you have any issues, questions, or suggestions for the ONLYOFFICE Docs Vue component, please refer to the Issues section.