ViewData API 可解决以下问题:具有特定于 UI 的状态、不是数据的一部分、
在域重新加载后仍存在和 Editor 重新启动。思路是在每个
EditorWindow
上有一个持久数据存储。每个 VisualElement
都有
一个 viewDataKey
,必须设置它才能启用 ViewData
持久性。
要为支持视图数据持久性的元素启用视图数据持久性,请将 viewDataKey
设置为 EditorWindow
中的唯一键。
只要元素具有有效的 viewDataKey
,就可启用视图数据持久性。唯一的例外是一个元素位于其父级的阴影树(而不是其逻辑父级的 contentContainer
的物理子项)中的时候。在此情况下,父级必须为其阴影树中的子项设置自己的 viewDataKey
才会具有持久性。
例如,在 ScrollView
中,每个滚动条都有自己的 viewDataKey
,它在 ScrollView
元素中是唯一的。ScrollView
没有设置键时,
滚动条不会具有持久性。否则,滚动条会将其 viewDataKey
与父级 viewDataKey
组合起来以创建全局唯一键。