1:安装
cnpm install mavon-editor --save
2、在plugins中创建vueMarkdown.js
import Vue from 'vue'
import mavonEditor from 'mavon-editor'
import "mavon-editor/dist/css/index.css"
Vue.use(mavonEditor)
3、在nuxt.config.js中引入
plugins: [
'~/plugins/vueMarkdown',
],
4 使用mavon-editor编辑
<template>
<client-only>
<mavon-editor
ref="md"
placeholder="请输入文档内容..."
:boxShadow="false"
style="z-index:1;border: 1px solid #d9d9d9;height:50vh"
v-model="content"
:toolbars="toolbars"
/>
</client-only>
</template>
<script>
export default {
name: "home",
components: {},
data() {
return {
content: "",
toolbars: {
bold: true, // 粗体
italic: true, // 斜体
header: true, // 标题
underline: true, // 下划线
strikethrough: true, // 中划线
mark: true, // 标记
superscript: true, // 上角标
subscript: true, // 下角标
quote: true, // 引用
ol: true, // 有序列表
ul: true, // 无序列表
link: true, // 链接
imagelink: true, // 图片链接
code: true, // code
table: true, // 表格
fullscreen: true, // 全屏编辑
readmodel: true, // 沉浸式阅读
htmlcode: true, // 展示html源码
help: true, // 帮助
/* 1.3.5 */
undo: true, // 上一步
redo: true, // 下一步
trash: true, // 清空
save: false, // 保存(触发events中的save事件)
/* 1.4.2 */
navigation: true, // 导航目录
/* 2.1.8 */
alignleft: true, // 左对齐
aligncenter: true, // 居中
alignright: true, // 右对齐
/* 2.2.1 */
subfield: true, // 单双栏模式
preview: true // 预览
}
};
},
methods: {
// 上传图片方法
$imgAdd(pos, $file) {
console.log(pos, $file);
}
}
};
</script>
这里注意一下 client-only 这个标签,因为nuxt.js是在服务端进行渲染页面,而服务器端是没有window或document 如果渲染的时候需要用到window或document就会出现 document is not defined 或者 window is not defined client-only 和 no-ssr 这两个标签都可以 下面提供具体写法
no-ssr
<no-ssr>
<mavon-editor :autofocus="false" ref="md" v-model="mdContent" @change="getMdHtml"
@imgAdd="uploadContentImg" @imgDel="delContentImg"/>
</no-ssr>
client-only
<client-only>
<mavon-editor :autofocus="false" ref="md" v-model="mdContent" @change="getMdHtml"
@imgAdd="uploadContentImg" @imgDel="delContentImg" />
</client-only>