vue-sign-canvas 组件从 Vue 2 升级到 Vue 3 的过程并非简单迁移,而是通过技术重构解决了触点偏移、空签名校验等核心痛点,使签名功能更符合实际业务需求。
签名组件在实际应用中需要应对多种复杂场景:
新版采用现代化技术方案:
Vue 2项目如需使用,请安装旧版:
npm i sign-canvas@1
重构后的代码结构更清晰:
constants.ts统一管理配置项useSignCanvas.ts处理组件状态utils/canvas.ts负责绘制相关功能index.vue专注视图层逻辑通过Pointer Events标准化输入处理,结合DPR计算确保定位精准。
严格区分用户签名与辅助图层:
新增fromDataURL()方法支持签名回显:
await signCanvasRef.value?.fromDataURL(base64);
优化历史记录存储方式:
signCanvasRef.value?.undo();
signCanvasRef.value?.redo();
支持快捷键操作:
Ctrl/Command+Z撤销Ctrl/Command+Y重做Ctrl/Command+Shift+Z重做支持合同模板等业务场景:
const options = {
backgroundImage: contractBase64,
backgroundImageFit: 'cover',
backgroundImageOpacity: 1
};
新增引导层功能:
const options = {
guideEnabled: true,
guideText: '张三',
guideFont: '700 96px serif',
guideTextColor: '#101010',
guideTextOpacity: 0.16
};
支持多角度导出:
const options = {
exportRotate: 90
};
解决透明背景问题:
const options = {
imgType: 'jpeg',
jpegBgColor: '#fff'
};
新版演示功能更全面:



升级注意事项:
本次升级不仅解决了技术债问题,更通过模块化设计为签名组件带来了更专业的业务支持能力,为后续功能扩展奠定了坚实基础。