您现在的位置是:首页 > 技术教程 正文

vue wangeditor 富文本编辑器的使用

admin 阅读: 2024-03-30
后台-插件-广告管理-内容页头部广告(手机)

wangeditor 富文本编辑器,是实现类似CSDN文章编辑功能的插件(CSDN官方使用的是CKEditor 富文本编辑器)。

一、使用步骤

1.引入库

wangEditor官方文档

根据自己项目使用的框架,采取不同的引入方式,如vue2:

npm install @wangeditor/editor-for-vue --save

2.在页面中使用

在vue2中使用wangeditor  (官方文档配置)

  1. <template>
  2. <div>
  3. <!-- 富文本编辑器 -->
  4. <div class="editor-box">
  5. <Toolbar
  6. style="border-bottom: 1px solid #ccc"
  7. :editor="editor"
  8. :defaultConfig="toolbarConfig"
  9. :mode="mode"
  10. />
  11. <input v-model="articleForm.title" class="article-title-box" maxlength="30" :border="false" placeholder="请输入文章标题(2~30字以内)" />
  12. <Editor
  13. style="height: 500px;overflow-y: hidden;"
  14. v-model="defaultHtml"
  15. :defaultConfig="editorConfig"
  16. :mode="mode"
  17. @onCreated="onCreated"
  18. @customPaste="customPaste"
  19. />
  20. </div>
  21. </div>
  22. </template>
  23. <script>
  24. import { Editor, Toolbar } from '@wangeditor/editor-for-vue';
  25. export default {
  26. components: { Editor, Toolbar },
  27. // 文章编辑相关配置
  28. data(){
  29. let that = this;
  30. return{
  31. editor: null,
  32. defaultHtml: '', // 这里的 HTML 内容必须是 wangEditor 生成的(即 editor.getHtml() 返回的) HTML 格式,不可以自己随意写
  33. toolbarConfig: { // 工具栏配置
  34. toolbarKeys:[ // 重新配置工具栏,显示哪些菜单,以及菜单的排序、分组。
  35. "fontSize", // 字号
  36. // "fontFamily", // 字体
  37. // "color", // 颜色
  38. "bold", // 加粗
  39. "italic", // 斜体
  40. "underline", // 下划线
  41. "insertLink",// 插入链接
  42. "bulletedList", // 无序列表
  43. "numberedList", // 有序列表
  44. // 对齐
  45. {
  46. key: "group-justify",
  47. title: "对齐",
  48. iconSvg:"0 0 1024 1024\">M768 793.6v102.4H51.2v-102.4h716.8z m204.8-230.4v102.4H51.2v-102.4h921.6z m-204.8-230.4v102.4H51.2v-102.4h716.8zM972.8 102.4v102.4H51.2V102.4h921.6z\">",
  49. menuKeys: ['justifyLeft',"justifyRight","justifyCenter","justifyJustify"]
  50. },
  51. "uploadImage", // 上传图片
  52. ]
  53. },
  54. editorConfig: { // 编辑器配置(图片如配置颜色、字体、链接校验、上传图片等)
  55. placeholder: '

          从这里开始写正文...

    '
    ,
  56. MENU_CONF:{
  57. // 插入图片
  58. uploadImage: {
  59. base64LimitSize: 1024 * 1024 * 10 // 10MB 小于该值就插入 base64 格式(而不上传),默认为 0
  60. },
  61. }
  62. },
  63. mode: 'default', // 'default' or 'simple'
  64. }
  65. },
  66. methods:{
  67. // 编辑器创建完毕时的回调函数。
  68. onCreated(editor) {
  69. this.editor = Object.seal(editor) // 一定要用 Object.seal() ,否则会报错
  70. },
  71. // 对用户剪切板内容的处理
  72. customPaste(editor, event){
  73. // event 是 ClipboardEvent 类型,可以拿到粘贴的数据
  74. const text = event.clipboardData.getData('text/plain'); // 获取粘贴的纯文本
  75. editor.insertText(text);
  76. event.preventDefault(); // 阻止默认的粘贴行为
  77. return false;
  78. }
  79. }
  80. }
  81. </script>
  82. <style>
  83. .editor-box{
  84. width: 800px; // 配置编辑器宽度
  85. height: auto;
  86. margin: 0 40px 20px 0;
  87. border: 1px solid #dddddd; // 编辑器外边框
  88. }
  89. </style>

上例配置的效果:


 3、配置参数

以vue2中的配置为例:Vue2中使用wangeditor

(1)工具栏配置——也就是字体、对齐方式、字号等配置

官网工具栏配置

        自定义工具栏:在data中配置toolbarConfig

(2)编辑器配置——默认的placeholder、配置颜色、字体、链接校验、上传图片等

 官网编辑器配置

  自定义工具栏:在data中配置editorConfig

  拓展:自定义插入图片,上传到七牛云


拓展1:将标题栏单列出来

        需求中要求把标题栏单列出来,也就是示例图片中"请输入文章标题..."栏,直接写在editor的placeholder会导致上传文章后,无法判断为正文内容还是文章标题,所以可以看到我在引入的工具栏和编辑器中间加了一个input标签,完美融入整个编辑器(当然,得修改input框的样式,让它融合的更好)。

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索