富文本编辑器

11 篇文章 0 订阅

基本的用法: 

代码都是从这里一点一点扣的  打开进去 写着重要都要加 

下面完整版 注释都解释了

html: 

<Toolbar
      :editor="editorRef"
      :defaultConfig="toolbarConfig"
      :mode="mode"
      style="border-bottom: 1px solid #ccc"
    />
    <Editor
      :defaultConfig="editorConfig"
      :mode="mode"
      v-model="valueHtml"
      style="height: 400px; overflow-y: hidden"
      @onCreated="handleCreated"
      @onChange="handleChange"
    />

js:

// 这三个固定import
import "@wangeditor/editor/dist/css/style.css";
import {
  ref,
  reactive,
  inject,
  onMounted,
  onBeforeUnmount,
  shallowRef,
} from "vue";
import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
// 这个是url 帮助图片 前缀 在main方法里面总合,
const server_url = inject("server_url");
// 编辑器实例,必须用 shallowRef,重要!
const editorRef = shallowRef();
// 去掉uploadVideo功能
const toolbarConfig = { excludeKeys: ["uploadVideo"] };
// 默认配置编辑器配置
const editorConfig = { placeholder: "请输入内容..." };
//设定为空
editorConfig.MENU_CONF = {};
//里面的上传图片 的配置 https://www.wangeditor.com/v5/menu-config.html#%E4%B8%8A%E4%BC%A0%E5%9B%BE%E7%89%87
editorConfig.MENU_CONF["uploadImage"] = {
  base64LimitSize: 10 * 1024, // 10kb
  server: server_url + "/upload/rich_editor_upload",
};
// 插入图片会执行的一个函数
// if 是否包含http 就给ta 返回server_url带url 不带http ta就会没有图片
editorConfig.MENU_CONF["insertImage"] = {
  parseImageSrc: (src) => {
    if (src.indexOf("http") !== 0) {
      return `${server_url}${src}`;
    }
    return src;
  },
};
// 默认配置不用管 要加上
const mode = ref("default");
// 文本内容
const valueHtml = ref("");
// 接收
const props = defineProps({
  // 设定类型
  modelValue: {
    type: String,
    default: "",
  },
});
// 传出
const emit = defineEmits(["update:model-value"]);
// 设定传出 的开关
let initFinished = false;
// 第一次10ms 接收一次传过来的东西赋予下去
onMounted(() => {
  setTimeout(() => {
    // 是把传过来的东西赋值回这里的内容
    valueHtml.value = props.modelValue;
    initFinished = true;
  }, 10);
});

// 组件销毁时,也及时销毁编辑器,重要!
onBeforeUnmount(() => {
  const editor = editorRef.value;
  if (editor == null) return;
  editor.destroy();
});

// 编辑器回调函数
const handleCreated = (editor) => {
  console.log("created", editor);
  editorRef.value = editor; // 记录 editor 实例,重要!
};
// 内容变化时调用
const handleChange = (editor) => {
  // 当接收定时器开启式 真正启动
  if (initFinished) {
    // emit('传的名字',要传的东西)
    emit("update:model-value", valueHtml.value);
  }
};

下面重点解析 部分

上传文件 教程-> 菜单配置 | wangEditor

服务器地址必填 和 限制了文件大小 其他功能可以找文章

右边是官方的写法 :为了给图片加个前缀地址

 vue 组件的 传值:

 // 去掉uploadVideo功能 上传视频

const toolbarConfig = { excludeKeys: ["uploadVideo"] };

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值