vue中使用markdown

本文介绍如何在Vue项目中集成mavon-editor富文本编辑器,实现文章编辑、预览及数据保存至数据库的功能。包括编辑器的安装、配置、使用方法,以及前后端交互实现数据实时保存。

实现编写博客文章等大段文字

下载插件,引用标签,实现大段文字可编辑,可添加样式,可预览效果
1、 在WriteArticle.vue页面上使用<mavon-editor>标签,并绑定数据articleData.content
2、 在WriteArticle.vue页面js中监听articleData,数据发生变化的时候(也就是在页面输入数据时),向后端发起请求,并保存数据到数据库里
3、点击预览的时候,向后端获取数据,并解析渲染到Details页面上

一、mavon-editor的安装和配置

 1. 	npm install mavon-editor -S
 2. //main.js中添加代码
 
		import mavonEditor from 'mavon-editor'
		import 'mavon-editor/dist/css/index.css'

二、页面使用

//WriteArticle.vue中使用<mavon-editor>标签

<mavon-editor  v-model="articleData.content"></mavon-editor>

三、效果
在这里插入图片描述
四、编辑时向后端发起请求,并保存数据

//WriteArticle.vue中监听数据变化
watch:{
        articleData:{
            handler:function(oldValue,newValue) {
                console.log(this.articleData);
                this.$http({
                    method:'post',
                    url:'/api/saveArticle/',
                    baseURL:process.env.API,
                    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
                    data:qs.stringify(this.articleData)
                }).then(res=>{
                    console.log(res)
                }).catch(res=>{
                    console.log("保存失败");
                })
            },
            deep:true
            }
    },

五、加载Details.vue页面上时,向后端发起请求,获取数据并解析渲染到页面上

1、	npm install marked -S
2、 //Details.vue中使用时引入
	import marked from 'marked'
3、//Details.vue中添加需要渲染的位置
	<div v-html="readContent"></div>
4、//Details.vue中添加方法,页面加载时从后端获取数据,用marked()来解析后端返回的数据
 created() {
      this.getArticleDetail()
  },
  methods: {
      getArticleDetail() {
          this.$http({
              method:'get',
              url:'/api/getArticleDetail/',
              baseURL:process.env.API,
              headers:{'Content-Type': 'application/x-www-form-urlencoded'}
          }).then(res=>{
              console.log("Details页面")
              console.log(res)
              this.readContent = marked(res.data.content)
          }).catch(res=>{
              console.log("获取数据失败")
          })
      }
  },

二、效果
在这里插入图片描述

因为没有连接数据库,数据是后端返回的假数据,所以插入的图片无法查看。

### 如何在 Vue 中集成并使用 Markdown 编辑器 #### 安装依赖 为了在 Vue 项目中集成 Markdown 编辑器,可以选择不同的库来完成这一目标。以下是几种常见的 Markdown 编辑器及其对应的安装方法。 如果选择 `v-md-editor` 库,则可以通过 npm 或 yarn 进行安装: ```bash npm install @kangc/v-md-editor --save # 或者 yarn add @kangc/v-md-editor ``` 对于其他选项,比如 `editormd` 和 `mavonEditor`,也可以通过类似的命令进行安装[^1][^2]: ```bash npm install editormd --save # 或者 npm install mavon-editor --save ``` #### 配置与初始化 ##### 使用 v-md-editor 的配置方式 在 Vue 项目的入口文件(通常是 main.js)中引入 `v-md-editor` 并注册它作为全局组件: ```javascript import VMdEditor from '@kangc/v-md-editor'; import '@kangc/v-md-editor/lib/style/base-editor.css'; // 如果需要支持高亮显示,可以额外引入 highlight.js 及其样式 import hljs from 'highlight.js'; import vuepressTheme from '@kangc/v-md-editor/lib/theme/vuepress.js'; import '@kangc/v-md-editor/lib/theme/style/vuepress.css'; VMdEditor.use(vuepressTheme, { Hljs: hljs, }); const app = createApp(App); app.use(VMdEditor).mount('#app'); ``` 这样就可以在整个应用范围内使用 `<v-md-editor>` 组件[^1]。 ##### 使用 MavonEditor 的配置方式 同样,在 main.js 文件中加载 `mavonEditor` 并将其挂载至 Vue 实例上: ```javascript import Vue from 'vue'; import mavonEditor from 'mavon-editor'; import 'mavon-editor/dist/css/index.css'; Vue.use(mavonEditor); ``` 之后可以在任何 Vue 单文件组件 (SFC) 中直接调用该编辑器[^3]。 #### 在组件中的实际运用 无论是哪种编辑器,都可以轻松嵌入到自定义的 Vue SFC 当中去操作数据流以及事件绑定等功能特性。 以下是一个基于 `v-md-editor` 的简单例子展示如何渲染 markdown 输入框并与父级交互传递值: ```html <template> <div class="editor-container"> <!-- 提供双向绑定 --> <v-md-editor v-model="content"></v-md-editor> <button @click="submitContent">提交</button> </div> </template> <script> export default { data() { return { content: '', // 存储当前输入的内容 }; }, methods:{ submitContent(){ console.log('已提交:', this.content); } } }; </script> ``` 而如果是采用 `mavonEditor`, 则会稍微有些不同之处在于属性名称等方面的变化[^3]: ```html <mavon-editor v-model="value" /> ``` 以上就是关于如何在 Vue 环境下成功集成了多种类型的 MarkDown 文本处理工具的方法介绍[^1]^.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

影已落流水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值