Vue3中使用富文本編輯器的方法詳解
前言
由于近年來(lái)Web做的比較少,即便做一些后臺(tái)管理系統(tǒng),基本也都沒(méi)要求富文本編輯器,讓我一度以為這東西沒(méi)人用了,突然就想起來(lái)最開(kāi)始使用富文本編輯器得時(shí)候還是寫(xiě)Asp.Net WebForm,那個(gè)時(shí)候好像都用FckEditor還是Ueditor來(lái)著。不過(guò)由于前后端分離得原因,使我不得不去尋找使用與Vue的富文本編輯器,隨便搜索一下,蠻多的,然后翻兩頁(yè),發(fā)現(xiàn)tinymce的使用文檔不少,想想就它吧,可是我著實(shí)沒(méi)想到啊,查到的文檔大部分在vue3中都不能用,所以就不得不結(jié)合一些博客以及官方文檔來(lái)實(shí)現(xiàn)
不過(guò)也是我的問(wèn)題吧,對(duì)于前端的知識(shí)就了解那么點(diǎn),多少費(fèi)了點(diǎn)周折。
以下可參考官網(wǎng):https://www.tiny.cloud/docs/tinymce/latest/vue-cloud/
開(kāi)發(fā)工具:Visual Studio Code
實(shí)現(xiàn)步驟
1.首先新建一個(gè)Vue3項(xiàng)目,emmm,這一步其實(shí)是不需要的,一般我們都是集成到自己項(xiàng)目中的
npm create vue@3 //然后按照提示一步步走就行了,環(huán)境問(wèn)題不在此考慮,創(chuàng)建完成之后CD進(jìn)目錄
2.安裝tinymce包
npm install @tinymce/tinymce-vue -S
3.下載漢化資源https://www.tiny.cloud/get-tiny/language-packages/,找到zh-相關(guān)的下載即可,解壓后將langs文件夾放在public目錄下
4.將node_modules/tinymce/skins文件夾復(fù)制到public目錄下
5.將富文本框組件化,方便調(diào)用,內(nèi)容如下
<template>
<Editor :disabled="disabled" :init="init" :api-key="apiKey" style="width: 100%" />
</template>
<script setup>
import tinymce from "tinymce/tinymce"; //tinymce核心文件
import Editor from "@tinymce/tinymce-vue";
import "tinymce/models/dom"; // 引入dom模塊。從 Tinymce6,開(kāi)始必須有此模塊導(dǎo)入
import "tinymce/themes/silver"; //默認(rèn)主題
import "tinymce/icons/default"; //引入編輯器圖標(biāo)icon
import 'tinymce/plugins/code'//引入需要的插件
const apiKey = "qagffr3pkuv17a8on1afax661irst1hbr4e6tbv888sz91jc";
const init = {
height: 300,
language_url: "./tinymce/langs/zh-Hans.js",
language: "zh-Hans",
skin_url: "./tinymce/skins/ui/oxide",
content_css: "./tinymce/skins/content/default/content.css",
branding: false,
menubar: false,
statusbar: true,
plugins: "code",//插件列表,需要先引入插件對(duì)應(yīng)的包
toolbar:
"undo redo |fontsize bold italic underline strikethrough forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent blockquote | lists image media table | codesample code removeformat save preview",
};//顯示在工具欄中的菜單
</script>6.調(diào)用
<template>
<div style="width: 80vw">
<TinymceEditor v-model="data"></TinymceEditor>
</div>
<div>
<button @click="getInput" >獲取</button>
</div>
</template>
<script setup>
import TinymceEditor from "./components/TinymceEditor.vue";
import { ref, onMounted, watch } from "vue";
const data = ref("");
const getInput = () => {
alert(data.value);
};
</script>
<style scoped></style>由于我需要的還是比較簡(jiǎn)單的功能,所以像圖片上傳之類的就沒(méi)做,有需要可以直接參考官網(wǎng)
實(shí)現(xiàn)效果

到此這篇關(guān)于Vue3中使用富文本編輯器的方法詳解的文章就介紹到這了,更多相關(guān)Vue3富文本編輯器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django+Vue.js搭建前后端分離項(xiàng)目的示例
本篇文章主要介紹了Django+Vue.js搭建前后端分離項(xiàng)目的示例,具有一定參考價(jià)值,有興趣的可以了解一下2017-08-08
Vue中的nextTick作用和幾個(gè)簡(jiǎn)單的使用場(chǎng)景
這篇文章主要介紹了Vue中的nextTick作用和幾個(gè)簡(jiǎn)單的使用場(chǎng)景,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2021-01-01
解決vue中props對(duì)象中設(shè)置多個(gè)默認(rèn)值的問(wèn)題
props中設(shè)置了默認(rèn)值,但是獲取時(shí)(獲取父頁(yè)面沒(méi)有傳的屬性) 打印出來(lái)是undefined,所以本文給大家介紹了解決vue中props對(duì)象中設(shè)置多個(gè)默認(rèn)值的問(wèn)題,需要的朋友可以參考下2024-04-04
Vue?vant-ui框架實(shí)現(xiàn)上拉加載下拉刷新功能
功能需求——獲取后端接口返回的數(shù)據(jù),實(shí)現(xiàn)列表數(shù)據(jù)上滑加載更多下一頁(yè)數(shù)據(jù),下拉數(shù)據(jù)刷新功能,結(jié)合vant-ui框架實(shí)現(xiàn)。可直接參考使用2022-09-09
一步步從Vue3.x源碼上理解ref和reactive的區(qū)別
vue3的數(shù)據(jù)雙向綁定,大家都明白是proxy數(shù)據(jù)代理,但是在定義響應(yīng)式數(shù)據(jù)的時(shí)候,有ref和reactive兩種方式,如果判斷該使用什么方式,是大家一直不很清楚地問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于從Vue3.x源碼上理解ref和reactive的區(qū)別的相關(guān)資料,需要的朋友可以參考下2023-02-02

