【发布时间】:2021-08-17 09:52:37
【问题描述】:
我正在尝试使用 UML 对我的 VUE 应用程序的一部分进行建模。我用一个类图来展示结构,用一个序列图来展示一个特定的行为。
有些事情我不确定:
- 关于类图:
Formcopmonent 导入数据criteria,谁的标准被传递给孩子,选项被传递给孙子。因此,子FormItem的每个实例都拥有一个标准标准,而孙BaseRadio的每个实例都拥有选项数组的一个选项。所以数据流是通过父级的。我还能像蓝色合成箭头所示那样关联criterium - FormItem和option - BaseRadio吗? - 关于序列图,我的目标是通过发射事件和传递道具来可视化跨组件数据流和自定义事件通信。我将这些描述为同步消息,因为它们不返回任何内容,但感觉很奇怪?
- 在一个组件中调用的函数是否应该是反射消息? (例如
setoption(option):void的序列图所示)。我猜想将计算属性integrationChance和integrationProspectPercentage表示为反身消息是错误的,因为它们不代表函数?
这里是 VUE 应用的 UML 类图草稿:
还有时序图:
这里是这个应用程序的描述:
- 函数的数据以 JSON 对象
criteria的形式导入。 - 对于每个标准(例如性别、年龄等),
criteria包含一个名为criterium的对象,该对象具有标签和数组选项。 options 数组为每个属性(男性、女性等)保存一个option。 - 每个
option都有一个名称(例如男性)和对应的值(例如 0)。 -
Form组件导入criteria对象和其他两个组件:FormItem和FormResultBar。该表单仅包含一个FormResultBar。对于criteria中的每个criterium,表单包含一个FormItem,对于每个option,FormItem包含一个BaseRadio按钮。 - 当用户单击
BaseRadio按钮时,其计算属性selectedValue会向FormItem发出一个事件,传递被单击选项的值和对应的criteriumKey。 -
FormItem组件然后设置选定的选项 (setOption()) 并保存它 (saveOption(option, criteriumKey),方法是向父组件发送事件Form并传递参数option和criteriumKey。在表单组件saveOption(option, criteriumKey)通过将选定的Option存储在 selections 对象中来保存它。 - selections 对象包含每个标准的所有选定选项。
Form项目中的计算属性integrationChance然后通过添加存储在选择中的所有选项值来计算积分机会。integrationChancePercentage方法将逻辑回归值转换为百分比。然后将integrationChancePercentage作为 prop“结果”传递给FormResultBar,并在其中显示结果。
您可以找到应用程序的实现部分here。
【问题讨论】:
标签: vue.js uml class-diagram sequence-diagram