vue实现预览编辑
Vue实现预览编辑功能
在Vue中实现预览编辑功能通常涉及以下方法:
使用v-model双向绑定 通过v-model绑定表单元素和数据对象,实时同步用户输入和预览显示。例如:

<template>
<div>
<textarea v-model="content" placeholder="输入内容"></textarea>
<div class="preview" v-html="compiledContent"></div>
</div>
</template>
<script>
export default {
data() {
return {
content: ''
}
},
computed: {
compiledContent() {
return this.content.replace(/\n/g, '<br>')
}
}
}
</script>
切换编辑/预览模式 通过状态变量控制显示编辑框或预览区域:
<template>
<div>
<button @click="editMode = !editMode">
{{ editMode ? '预览' : '编辑' }}
</button>
<textarea v-if="editMode" v-model="content"></textarea>
<div v-else class="preview">{{ content }}</div>
</div>
</template>
<script>
export default {
data() {
return {
editMode: true,
content: ''
}
}
}
</script>
使用Markdown解析 对于Markdown内容预览,可引入marked等库:

import marked from 'marked'
export default {
computed: {
compiledMarkdown() {
return marked(this.content)
}
}
}
富文本编辑器集成 集成第三方编辑器如Quill、TinyMCE等:
import VueQuill from 'vue-quill-editor'
export default {
components: {
VueQuill
},
data() {
return {
content: ''
}
}
}
<vue-quill v-model="content"></vue-quill>
<div v-html="content"></div>
自动保存功能 结合防抖技术实现内容自动保存:
import _ from 'lodash'
export default {
methods: {
saveContent: _.debounce(function() {
localStorage.setItem('draft', this.content)
}, 1000)
},
watch: {
content() {
this.saveContent()
}
}
}
这些方法可根据具体需求组合使用,实现不同复杂度的预览编辑功能。对于复杂场景,建议使用专门的编辑器组件库。






