美文网首页
封装froala-edtior组件

封装froala-edtior组件

作者: charmingcheng | 来源:发表于2020-05-08 14:12 被阅读0次

npm引入froala-editor

npm install vue-froala-wysiwyg --save

main.js导入js

//Import Froala Editor 
import 'froala-editor/js/plugins.pkgd.min.js';
//Import languages 中文语言包
import 'froala-editor/js/languages/zh_cn';
// Import Froala Editor css files.
import 'froala-editor/css/froala_editor.pkgd.min.css';

// Import and use Vue Froala lib.
import VueFroala from 'vue-froala-wysiwyg'

Vue.use(VueFroala)

Editor组件

@/components/Editor/index.vue

<template>
  <froala v-model="content" :config="froalaConfig" />
</template>

<script>
export default {
  name: 'Editor',
  props: {
    value: {
      type: String,
      default: ''
    }
  },
  data() {
    return {
      froalaConfig: {
        placeholder: '请填写内容',
        language: 'zh_cn', // 国际化
        toolbarButtons: [
          'html',
          'selectAll',
          'fontSize',
          'fontFamily',
          'textColor',
          'bold',
          'italic',
          'underline',
          'align',
          'insertLink',
          'insertImage',
          'clearFormatting',
          'insertTable',
          'undo'
        ],
        height: '450px',
        imageDefaultAlign: 'left',
        imageInsertButtons: ['imageBack', '|', 'imageUpload', 'imageByURL'],
        imageUploadURL: '/dev-api/api/editor/editor-upload', // 图片上传api
        quickInsertEnabled: false,
        colorsHEXInput: false, // 关闭16进制色值
        toolbarSticky: false, // 操作栏是否自动吸顶
        attribution: false,
        linkList: [],
        fontSize: [
          '12',
          '14',
          '16',
          '18',
          '20',
          '22',
          '24',
          '26',
          '28',
          '30',
          '50',
          '60'
        ]
      }
    }
  },
  computed: {
    content: {
      get() {
        return this.value
      },
      set(val) {
        this.$emit('content-change', val)
      }
    }
  }
}
</script>

父组件调用编辑器

<editor ref="editor" v-model="form.content" @content-change="contentChange" />

<script>
import Editor from "@/components/Editor";
export default {
  components: { Editor },
  data() {
    return  {
      form: {}
      ...
    }
  },
  methods: {
   contentChange(val) {
      // 编辑器内容改变时,改变父组件的内容
      this.form.content = val
    },
   ...
  }
}
</script>

相关文章

  • 封装froala-edtior组件

    npm引入froala-editor main.js导入js Editor组件 @/components/Edit...

  • 封装组件

    封装tab组件封装曝光加载组件封装轮播组件 代码

  • 面向对象实战

    封装轮播组件 轮播 封装曝光加载组件 曝光加载 封装Tab 组件 Tab组件

  • 面向对象实战

    1、tab组件封装2、轮播组件封装3、曝光组件封装

  • 封装element-ui的dialog组件

    封装组件: 使用封装的组件:

  • 高级-任务3

    封装一个轮播组件 封装一个曝光加载组件 封装一个 Tab 组件 封装一个 Modal 组件

  • 面向对象实战

    题目1: 封装一个轮播组件轮播组件题目2: 封装一个曝光加载组件曝光加载组件题目3: 封装一个 Tab 组件Tab 组件

  • Web37.面向对象实战

    题目1:封装一个轮播组件 题目2:封装一个曝光加载组件 题目3:封装一个Tab组件 题目4:封装一个日历组件 题目...

  • element-ui 封装dialog组件

    封装组件: 使用组件:

  • 封装(面向对象)

    题目1: 封装一个轮播组件 轮播封装 题目2: 封装一个曝光加载组件 曝光加载 题目3: 封装一个 Tab 组件 ...

网友评论

      本文标题:封装froala-edtior组件

      本文链接:https://www.haomeiwen.com/subject/asdfnhtx.html