对于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回答

张轩

2021-05-31

同学你好 很好的思考 

我觉得两种方式都可以,但是我更倾向于两个组件的方案,因为可以定制性更加灵活并且语义化,比如我想在 DropdownItem 中自定义 template,

<Item>
    <h2>custom item</h2>
</Item>

这样写是更简单的。

同学如果去看一下 element-plus ,ant-design 这些组件库,就会发现它们都采用了分成两个标签的模式。

https://element-plus.gitee.io/#/zh-CN/component/dropdown

0
1
小云嘚咿的飘
非常感谢!
2021-05-31
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3074 学习 · 2253 问题

查看课程