<template>
<div id="app">
<textarea v-model="content" @input="update"></textarea>
<div v-html="compiledMarkdown"></div>
</div>
</template>
<script>
import marked from 'marked';
export default {
name: 'VueEditor',
data() {
return {
content: '# Welcome to my Vue Editor\n\nWrite your markdown here.'
};
},
computed: {
compiledMarkdown() {
return marked(this.content);
}
},
methods: {
update: _.debounce(function(e) {
this.content = e.target.value;
}, 300)
}
};
</script>
<style scoped>
textarea {
width: 100%;
height: 200px;
}
</style>
模板部分 (<template>):
<textarea> 元素来输入文本内容,并通过 v-model 绑定到 content 数据属性。<div> 元素来显示编译后的 Markdown 内容,使用 v-html 指令将 compiledMarkdown 计算属性的内容渲染为 HTML。脚本部分 (<script>):
marked 库,用于将 Markdown 文本转换为 HTML。VueEditor 的组件。data 函数中定义了 content 属性,初始值为一段欢迎信息。computed 计算属性 compiledMarkdown 将 content 转换为 HTML 格式。update 方法,使用 lodash 的 _.debounce 函数来防抖处理输入事件,避免频繁更新。样式部分 (<style scoped>):
<textarea> 的宽度和高度,使其占据整个容器并具有固定的高度。这个示例代码展示了一个简单的 Vue 编辑器,用户可以在文本框中输入 Markdown 格式的文本,并实时预览其渲染效果。
上一篇:vue3 ssr
下一篇:vue icon
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站