对于Dropdown组件的几个问题,谢谢
来源:4-9 Dropdown 组件添加 DropdownItem
小云嘚咿的飘
2021-05-30
老师,我对Dropdown组件有疑问:
从我个人的理解和平时写组件的习惯上,我更倾向于把下拉选项数据通过props传递给Dropdown组件,然后在Dropdown组件内部,根据接收到的数据用v-for的方式处理选项数据,并进行扩展。
组件基本形式如下:
<Dropdown :title="title" :options="options" @click="onClickItem"></Dropdown>
这么写的原因:
1、感觉组件划分层级过多、粒度过细并不方便维护,反而感觉一个功能被切得很碎。
2、在一个项目中,业务需求基本是在一定范围内的,没有太高的组件扩展需求。并且我觉得在Dropdown组件内部对DropdownItem进行扩展也不会很复杂。
另外有一个问题:
我同意标签语义化的观点,但在大部分vue、react项目中都是使用自定义组件,使用者对组件内部并不关心,那么标签语义化在这种情况下是否还有必要坚持,有时候div一把梭好像也没什么问题。
写回答
1回答
-
同学你好 很好的思考
我觉得两种方式都可以,但是我更倾向于两个组件的方案,因为可以定制性更加灵活并且语义化,比如我想在 DropdownItem 中自定义 template,
<Item> <h2>custom item</h2> </Item>
这样写是更简单的。
同学如果去看一下 element-plus ,ant-design 这些组件库,就会发现它们都采用了分成两个标签的模式。
https://element-plus.gitee.io/#/zh-CN/component/dropdown
012021-05-31
相似问题