xinglie / report-designer

⚡打印设计、可视化、标签打印、编辑器、设计器、数据分析、报表设计、组件化、表单设计、h5页面、调查问卷、pdf生成、流程图、试卷、SVG、图形元素、物联网、标签纸
https://xinglie.github.io/report-designer/
950 stars 245 forks source link

设计与展示分离 #16

Open xinglie opened 4 years ago

xinglie commented 4 years ago

本项目整体分2大部分,设计部分与展示部分。

设计部分

设计部分是核心,编辑器或叫设计器本身要实现历史记录、对齐操作、复制粘贴等功能,同时管理数据和派发事件。 为了便于可扩展和插件化,设计部分的核心就需要健全和简单,这样方便后续核心功能的开发和插件的开发。

目前像顶部的可编辑元素及4个面板全部以插件化的形式存在,这里介绍下可编辑元素的设计与展示分离。

任意一个可编辑元素,如图片,它需要向设计器提供可编辑能力和根据编辑后的数据展示能力。我们可以把这2部分集成在同一个组件里,但这样做,如果离开设计器,做纯展示的话,那组件内部保存的可编辑能力在展示情况下是无用的。

在当前项目里是这样做的: image

一个组件的编辑能力与展示能力是分离的,在设计器中是编辑与展示均加载

展示部分

而到了展示或打印时,则是这样的: image 直接加载组件相应的展示层,这样就做到了设计与展示分离,无论在哪种场景下均不加载冗余数据的目标。