前端图形学实战: 100行代码实现几何画板的撤销重做等功能(vue3 + vite版)

本文介绍了如何在前端图形画板应用中,使用vue3和vite实现撤销和重做功能。通过创建记录管理器、快照生成和管理,以及监听画布状态变化,实现撤销重做的核心逻辑。此外,文章探讨了撤销重做功能的扩展场景和未来规划。
摘要由CSDN通过智能技术生成

hello, 大家好, 我是徐小夕, 今天又到了我们的博学时间。

本文是 100+前端几何学应用案例 专栏的第三篇文章, 在第一篇文章 几何学在前端边界计算中的应用和原理分析 和第二篇文章 前端图形学实战: 从零开发几何画板(vue3 + vite版) 中我介绍了几何学在前端领域的应用以及如何从零开发一个几何画板:

fad5a9949ab1f0c5ee3441505b144711.png

2022-10-15 20.46.21.gif

如果大家感兴趣可以在 gitee 查看我的具体代码实现: https://gitee.com/lowcode-china/euryd

接下来就继续上次的话题, 来从零实现几何画板撤销重做功能。

我们都知道各种设计工具如figma, PhotoShop, 或者最近比较火的可视化低代码平台如H5-Dooring 都有撤销重做功能, 主要是为了降低用户的误操作成本, 带来更好的搭建体验, 并且这两个功能基本成为了可视化领域的标配功能, 接下来我将带大家介绍一下市面上常用的几种撤销重做的实现方案以及撤销重做功能底层的实用价值。

你将收获

  • 撤销重做的实现思路

  • vuereact 框架下的撤销重做库介绍

  • 从零实现几何画板的撤销重做功能

  • 挖掘 撤销重做 的扩展场景

demo演示

6d10006f7d41524e97b192f497fba71e.png

技术实现

在实现撤销重做功能之前, 我们需要先理清设计思路, 这样才能让自己的代码更健壮。

实现思路

分析了几种撤销重做的场景后我总结出如下几个要点:

  • 支持基础的撤销重做能力(取消和恢复用户操作的能力)

  • 需要限制最大可操作记录数(防止历史记录数过大导致前端性能问题)

  • 操作记录的当前索引(方便做更可控的撤销重做控制)

  • 在撤销的过程中发生的任何改动, 都会清空当前步骤之后的所有记录

  • 操作历史持久化(可选, 即是否需要在用户刷新页面之后仍然保留操作记录历史)

为了让大家更好的理解这些要点,我画了一个 撤销重做 过程的流程图:

105d2cec8d757e0255639fcbc964d772.png
image.png
62c3746ec4213cca773b4154844a8c9a.png
image.png

还有一点需要注意的是: 在撤销的过程中发生的任何改动, 都会清空当前步骤之后的所有记录,最终产生一个新的状态分支:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值