富文本编辑存储及显示 vue+springBoot

3 篇文章 2 订阅

1.前言

最近项目中需要实现对资讯文章等的编辑与存储

前端语言:vue,组件:element,富文本编辑器(vue-ueditor-wrap)

后端语言:springBoot

2.项目需求

需求:前端通过富文本编辑器对文章资讯进行编辑,保存在数据库中,显示时原样式显示。

3.实现

3.1前端

3.1.1安装依赖vue-ueditor-wrap

npm i vue-ueditor-wrap

3.1.2下载ueditor并将其复制到public目录下 

下载链接     vue-ueditor-wrap

将解压的文件夹重命名为 UEditor 并移动到项目的静态资源目录下, Vue CLI(v3+)创建的项目,静态资源目录就是 public。

3.1.3注册组件

// main.js
import { createApp } from 'vue';
import VueUeditorWrap from 'vue-ueditor-wrap';
import App from './App.vue';

createApp(App).use(VueUeditorWrap).mount('#app');

3.1.4绑定

<div class="bottom_box">
  <el-form :model="shopAddForm" :inline="true"
    label-width="160px" label-position="left" class="form_style">
    <el-form-item label="新增博客" prop="content">
       <vue-ueditor-wrap v-model="content"
        :config="editorConfig"
        editor-id="editor-demo-01"></vue-ueditor-wrap>
    </el-form-item>
    <div style="margin: 0 0 16px 424px">
      <el-button @click="$router.back(-1)">取消</el-button>
      <el-button type="primary" style="margin-left: 24px"
         @click="submitForm">保存</el-button>
     </div>
  </el-form>
</div>
  setup() {
    const { proxy } = getCurrentInstance();
    const state = reactive({
      content: '你好',
      editorConfig: {},
      shopAddForm: {
      },
    });
    // 表单提交
    const submitForm = () => {
      const shopInfo = {};
      shopInfo.detail = state.content;
      shopInfo.title = '博客发表';
      console.log(shopInfo);
      proxy.$api.addBlob(shopInfo).then(({ data }) => {
        if (!data.code) {
          console.log('新增成功');
        }
      });
    };
    return {
      ...toRefs(state),
      submitForm,
    };
  },
  created() {
    this.editorConfig = {
      // 访问 UEditor 静态资源的根路径,可参考常见问题1
      UEDITOR_HOME_URL: '/UEditor/',
      // 服务端接口(这个地址是我为了方便各位体验文件上传功能搭建的临时接口,请勿在生产环境使用!!!)
      serverUrl: '//ueditor.szcloudplus.com/cos',
    };
  },

3.1.5展示结果

富文本编辑器正常显示,数据已经绑定

 3.1.6数据传递

前台通过v-model绑定的元素将数据连同form表单一起传给后台,绑定的数据在传递时是以dom元素的形式进行传递的。

 

显示 

<el-form-item label="博客" prop="detail">
   <p v-html="shopAddForm.detail"></p>
</el-form-item>

4.后端 

后端就是简单的增删改查操作

唯一注意点,DB数据存储,将DB存储字段设置为LONGTEXT,以免报长度不够错误

domain中设置长度

/**
 * 详情
 */
@Column(name = "detail",length=100000)
private String detail;

至此,简单的富文本编辑实现。

  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值