Vue组件定位最优方案:父组件CSS设置还是子组件内部CSS设置?
子组件定位样式归属方案对比
没有绝对的优劣之分,完全根据组件的使用场景决定,核心判断标准是:该定位样式是子组件的固有通用属性,还是当前父组件布局上下文的特有属性。
写在子组件内部的适用场景
如果margin-left: auto是子组件的固有属性,不管放到哪个父组件中调用都需要保留这个定位效果,优先写在子组件自身的childClassFromItself类中:
- 优势:样式维护集中,所有调用方都不需要额外写样式逻辑,不会出现漏写类导致样式失效的问题,减少重复代码。
写在父侧绑定类的适用场景
如果该定位样式是当前父容器的布局特有的,子组件在其他业务场景下复用时不需要这个效果,优先写在父侧传递的childClassFromParent类中:
- 优势:保证子组件的通用性,避免内置了特定场景的样式后,其他调用方需要额外写样式覆盖原有属性,降低组件和业务场景的耦合度。
补充说明
Vue中给自定义组件绑定的class默认会自动合并到子组件的根元素类名上,两种写法可以共存:子组件内部封装通用的固有样式,父组件根据自身布局需求传递定制化的布局样式即可,不会产生冲突。
内容的提问来源于stack exchange,提问作者Namysh
相关产品推荐
相关产品推荐

