今回は、tinymce リッチテキスト editor を Vue に導入する手順について詳しく説明します。Vue に tinymce リッチ テキスト エディター を導入する際の 注意点
について、実際の事例を見てみましょう。 このプロジェクトで使用したオリジナルのリッチ テキスト エディターは、非常に軽量で簡潔なエディターである wangEditor でしたしかし、会社のビジネスがアップグレードされたため、より包括的な機能を備えたエディターが必要になり、長い間探していました。現在、最も一般的なものは以下のエディターです: UEditor: Baidu のフロントエンド オープン ソース プロジェクト。強力で jQuery に基づいていますが、現在はメンテナンスされておらず、バックエンド コードは制限されています。-wysiwyg: マイクロ、使いやすい、小さくて美しい、Bootstrap + jQuery だけ...
kindEditor: 強力でシンプルなコード、バックグラウンドを設定する必要があるが、まだ設定されていない久しぶりの更新
wangEditor: 軽くてシンプルで使いやすいですが、3.xにアップグレードしました その後のカスタマイズ開発は不便です。しかし、作者はとても勤勉です。広い意味では、彼と私は家族です。電話してください。 機能はそれほど多くありませんが、API 自体の拡張も簡単です。英語が理解できる方は…
サマーノート: なし さらに調べてみると、UIがとても美しく、小さくて美しいエディターだということがわかりましたが、大きなエディターが必要です
そんな参考にして、ようやくtinymce を選んだのは、ラダーなしでは公式 Web サイトを開くことすらできないエディターです。主な理由は次の 2 点です:
1. GitHub にたくさんのスターがあり、機能が充実しています。 2. Word から貼り付けるときにほとんどの書式設定を維持できる唯一のエディター
3. インターフェイスを変更するためにコードをスキャンするバックエンド担当者を見つける必要がなく、フロントエンドとバックエンドは分離しました
4. 良い点が 2 つあります。
1. リソースのダウンロード
tinymce は、vue プロジェクト用のコンポーネント tinymce-vuenpm install @tinymce/tinymce-vue -S
私のように購入していない人は、 tinymce は正直にダウンロードする必要があります
npm install tinymce -S
インストール後、node_ で
modules の tinymce/skins ディレクトリを見つけて、skins ディレクトリを静的ディレクトリにコピーします
// vue を使用してビルドされた typescript プロジェクトの場合-cli 3.x では、パブリック ディレクトリに置きます。この記事の静的ディレクトリはすべてこのように処理されます
tinymce はデフォルトで英語のインターフェイスになっているため、中国語の言語パックもダウンロードする必要があります (忘れずにはしごを作りましょう!
以下のファイルをページに導入しますimport tinymce from 'tinymce/tinymce' import 'tinymce/themes/modern/theme' import Editor from '@tinymce/tinymce-vue'
ここで init は tinymce の初期化設定項目です。完全な API については、公式ドキュメントを参照してください
エディターが適切に動作するにはスキンが必要なので、以前にコピーしたスキン ファイルを指すようにskin_url を設定する必要がありますinit: { language_url: '/static/tinymce/zh_CN.js', language: 'zh_CN', skin_url: '/static/tinymce/skins/lightgray', height: 300 }
ここに渡された場合 上記のinitオブジェクトを入力しても反映されませんが、パラメータが渡されない場合はエラーが報告されるため、ここに空のオブジェクトを渡します
3. 拡張プラグイン完成了上面的初始化之后,就已经能正常运行编辑器了,但只有一些基本功能
tinymce 通过添加插件 plugins 的方式来添加功能
比如要添加一个上传图片的功能,就需要用到 image 插件,添加超链接需要用到 link 插件
同时还需要在页面引入这些插件:
添加了插件之后,默认会在工具栏 toolbar 上添加对应的功能按钮,toolbar 也可以自定义
贴一下完整的组件代码:
<template> <p class='tinymce'> <h1>tinymce</h1> <editor id='tinymce' v-model='tinymceHtml' :init='init'></editor> <p v-html='tinymceHtml'></p> </p> </template> <script> import tinymce from 'tinymce/tinymce' import 'tinymce/themes/modern/theme' import Editor from '@tinymce/tinymce-vue' import 'tinymce/plugins/image' import 'tinymce/plugins/link' import 'tinymce/plugins/code' import 'tinymce/plugins/table' import 'tinymce/plugins/lists' import 'tinymce/plugins/contextmenu' import 'tinymce/plugins/wordcount' import 'tinymce/plugins/colorpicker' import 'tinymce/plugins/textcolor' export default { name: 'tinymce', data () { return { tinymceHtml: '请输入内容', init: { language_url: '/static/tinymce/zh_CN.js', language: 'zh_CN', skin_url: '/static/tinymce/skins/lightgray', height: 300, plugins: 'link lists image code table colorpicker textcolor wordcount contextmenu', toolbar: 'bold italic underline strikethrough | fontsizeselect | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent blockquote | undo redo | link unlink image code | removeformat', branding: false } } }, mounted () { tinymce.init({}) }, components: {Editor} } </script>
四、上传图片
tinymce 提供了 images_upload_url 等 api 让用户配置上传图片的相关参数
但为了在不麻烦后端的前提下适配自家的项目,还是得用 images_upload_handler 来自定义一个上传方法
这个方法会提供三个参数:blobInfo, success, failure
其中 blobinfo 是一个对象,包含上传文件的信息:
success 和 failure 是函数,上传成功的时候向 success 传入一个图片地址,失败的时候向 failure 传入报错信息
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上がtinymce リッチテキストエディタを Vue に導入する手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。