Vue 文档编辑器快速上手:5 分钟搭好纸面式在线文档编辑页
【免费下载链接】vue-document-editor:page_facing_up: Paper-sized WYSIWYG document editor for Vue apps项目地址: https://gitcode.com/gh_mirrors/vu/vue-document-editor
vue-document-editor 是一个面向 Vue 3 的纸面式所见即所得文档编辑器,它把内容像 A4 纸一样排版分页,让你直接在浏览器里做在线文档编辑与预览。本文带你 5 分钟在本地跑通它的演示,并看懂项目里"改哪里、怎么改"。
它能帮你做什么
它不是要取代 Word 这种全能文字处理器,而是做"有明确场景"的文档编辑:比如一张在线发票模板,只有金额、日期字段可编辑;或者一份合同样式的预览,内容写满一页后自动流到下一页。页眉页脚页码可以自定义,纸张尺寸和页边距按毫米动态设置,还天然支持打印。核心就一层:基于浏览器原生 contenteditable 做精细控制——自动分页、按词拆分跨页、支持把 Vue 组件当成交互式页面模板。
🚀 本地在线文档编辑三步跑起来
第一步:准备环境。装好 Node.js(建议 16 以上),然后克隆项目:
git clone https://gitcode.com/gh_mirrors/vu/vue-document-editor cd vue-document-editor第二步:安装依赖。
npm install第三步:启动本地服务。
npm run serve终端会打印本地地址(一般是 http://localhost:8080),浏览器打开,你看到的就是一个带工具栏的交互式发票编辑器——对应 src/Demo/Demo.vue 这个演示页面。改代码后页面热更新,直接进入"边改边看"的节奏。
快速读懂项目:按场景找代码
别从第一个文件硬读到底,按"想改什么"去定位路径:
- 想调演示页的工具栏、初始内容、撤销按钮 → 看 src/Demo/Demo.vue
- 想改编辑器本体(分页、页面样式、显示模式)→ 看核心组件 DocumentEditor.vue
- 想搞清楚"内容溢出怎么滚到下一页"→ 看 page-transition-mgmt.js,分页的递归逻辑都在这
- 想看一个真实的 Vue 页面模板怎么写 → 看 InvoiceTemplate.ce.vue,就是演示里那张发票
- 想查所有参数(页宽、边距、display 模式)→ 查 API.md
📦 Vue 文档编辑器项目关键文件速查表
| 文件 | 作用 | 什么时候看它 |
|---|---|---|
| src/main.js | 应用入口,把演示 Demo 挂到页面上 | 排查启动、挂载问题时 |
| src/Demo/Demo.vue | 完整演示页:编辑器接线、工具栏、撤销重做 | 学习它在你项目里怎么用 |
| src/DocumentEditor/DocumentEditor.vue | 核心编辑器组件,也是库的入口 | 改分页、纸张、页面行为时 |
| package.json | 依赖与脚本(serve 跑演示、build 出产物) | 加依赖、查命令时 |
🕳️ 常见坑:这三个新手容易栽
- content 传成字符串,页面空白:
content属性必须是一个数组,每一项代表一组页面,数组项之间相当于分页符。照着 src/Demo/Demo.vue 里的传法抄就不会错。 - 以为工具栏是自带的:库里不含任何工具栏,演示里那排按钮来自独立依赖 vue-file-toolbar-menu,你在自己项目里得自己接一个。
- 撤销/重做直接失效:分页机制每次输入都在改写 DOM,浏览器原生历史记录会丢。需要自己监听
content变化压栈实现,Demo.vue 里就有现成方案,可以直接搬。
一句话总结:vue-document-editor 把 contenteditable 驯成了一张会自己分页的"纸",配上 Vue 组件模板,你的在线文档编辑场景就能少写一大半代码。更多参数与已知限制,去项目根目录翻 README.md 和 API.md。
【免费下载链接】vue-document-editor:page_facing_up: Paper-sized WYSIWYG document editor for Vue apps项目地址: https://gitcode.com/gh_mirrors/vu/vue-document-editor
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考