nuxt3接入wangEditor

基础环境

shell 复制代码
"nuxt": "^3.11.2",
"vue": "^3.4.27",
node: v20.12.2

安装

shell 复制代码
pnpm add @wangeditor/editor -S
pnpm add @wangeditor/editor-for-vue -S

注意看看包的版本是不是都是 5.x

bash 复制代码
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12"

截止到 2024-05-22 上面2个包均为最新版本

代码

html 复制代码
<template>
  <div>
    <div style="border: 1px solid #ccc">
      <Toolbar
        style="border-bottom: 1px solid #ccc"
        :editor="editorRef"
        :defaultConfig="toolbarConfig"
        :mode="mode"
      />
      <Editor
        style="height: 500px; overflow-y: hidden"
        v-model="valueHtml"
        :defaultConfig="editorConfig"
        :mode="mode"
        @onCreated="handleCreated"
      />
    </div>
  </div>
</template>

<script setup>
import '@wangeditor/editor/dist/css/style.css'; // 引入 css
import { Editor, Toolbar } from '@wangeditor/editor-for-vue';

// 编辑器实例,必须用 shallowRef
const editorRef = shallowRef();
// 内容 HTML
const valueHtml = ref('<p>hello</p>');

const toolbarConfig = {};
const editorConfig = { placeholder: '请输入内容...' };

const mode=ref('default')

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

const handleCreated = (editor) => {
  editorRef.value = editor; // 记录 editor 实例,重要!
};

onMounted(() => {
  // 模拟 ajax 异步获取内容
  setTimeout(() => {
    valueHtml.value = '<p>模拟 Ajax 异步设置内容</p>';
  }, 1500);
});
</script>

上述组件目前不需要包裹在 Nuxt3ClientOnly 里面。

经过测试,pnpm run build 构建 , pnpm run preview 预览 都没问题

在终端运行dev 的时候,会出现

less 复制代码
 WARN  [Vue Router warn]: uncaught error during route navigation:


 ERROR  Cannot set property crypto of #<Object> which has only a getter

  at node_modules/.pnpm/@[email protected]/node_modules/@wangeditor/editor/dist/index.js:69:25
  at node_modules/.pnpm/@[email protected]/node_modules/@wangeditor/editor/dist/index.js:2:66
  at Object.<anonymous> (node_modules/.pnpm/@[email protected]/node_modules/@wangeditor/editor/dist/index.js:5:3)
  at Module._compile (node:internal/modules/cjs/loader:1369:14)
  at Object..js (node:internal/modules/cjs/loader:1427:10)
  at Module.load (node:internal/modules/cjs/loader:1206:32)
  at Function._load (node:internal/modules/cjs/loader:1022:12)
  at cjsLoader (node:internal/modules/esm/translators:366:17)
  at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:315:7)
  at ModuleJob.run (node:internal/modules/esm/module_job:222:25)

不过不影响运行构建

相关推荐
心.c34 分钟前
vue3大事件项目
前端·javascript·vue.js
东锋1.32 小时前
前端动画库 Anime.js 的V4 版本,兼容 Vue、React
前端·javascript·vue.js
前端怎么个事3 小时前
框架的源码理解——V3中的ref和reactive
前端·javascript·vue.js
Ciito4 小时前
将 Element UI 表格元素导出为 Excel 文件(处理了多级表头和固定列导出的问题)
前端·vue.js·elementui·excel
不爱吃饭爱吃菜4 小时前
uniapp微信小程序一键授权登录
前端·javascript·vue.js·微信小程序·uni-app
BillKu10 小时前
Vue3 Element Plus 对话框加载实现
javascript·vue.js·elementui
运维@小兵12 小时前
vue配置子路由,实现点击左侧菜单,内容区域显示不同的内容
前端·javascript·vue.js
岁岁岁平安14 小时前
Vue3学习(组合式API——Watch侦听器、watchEffect()详解)
前端·javascript·vue.js·学习·watch侦听器·组合式api
码视野14 小时前
基于Spring Boot和Vue的在线考试系统架构设计与实现(源码+论文+部署讲解等)
vue.js·spring boot·系统架构