Open youluna opened 5 years ago
组件结构布局即 DOM 结构布局,符合认知习惯; 从顶至下嵌套清晰也方便用户自定义修改某些wrapper样式,比如Header增加style、className等。 赞成嵌套模式
方式1平铺组件,不利于感知真实的DOM结构,修改Header组件样式还需要用户自己去寻找真实的header dom在哪里,有点反常和不方便。
Shell是一个中台体系下的设计强约束性组件,与传统Layout的区别在于,每一个Shell组件/子组件都有它的含义、固定位置、固定UI设置,在不同device下有约定的样式展示。现有的Shell一定无法覆盖所有场景,需要不断迭代。
嵌套模式用的是传统Layout,用户关心布局,自适应能力有限,也需要用户自己做。
另外关于自定义Header区域样式的问题,我的看法是这样的:Shell的这层设计约束就是为了减少不确定性的。之所以开放了Branding/ Navigation / Action 而没有开放Header,是因为目前在设计层面上不认为它是必要的,一切对于Header的改造都应该可以通过主题配置、API使用来解决。
支持按照现在的逻辑,采用单层模式
从自适应布局方面考虑,确实不应该采用嵌套模式,无法完整表述组件在各种布局下的嵌套关系。
但希望在 Shell 层面,能开放一些定义 header / aside / main 属性的口子,在合适的时机应用上去,比如 headerProps / asideProps / mainProps。
话说这些props是准备解决哪些问题的呢?
如果是样式问题,可以通过提需求,让Shell增加配置项来解决。Shell会纳入到基础组件体系里,并且增加种类配置项(比如button有normal secondary primary等多种类),支持定义不同的模版(例如深色header浅色aside、浅色header深色asider等多种组合)
这样能解决你的问题么 @micate
单层模式
嵌套模式