正在加载视频...

视频加载失败

❌ Avoid having components with too many props. ✅ Instead use the compound components pattern in React to embrace composition.

130,061 次观看 • 2 年前 •via X (Twitter)

11 条评论

George Moller 的头像
George Moller2 年前

I've been working professionally with React for more than 8 years and I compiled all my knowledge into 100+ infographics just like this one. Check them out ↓

Anthony 🇳🇬🇨🇦 的头像
Anthony 🇳🇬🇨🇦2 年前

So you want to use a hook just to render a drop down? It was much simpler the way it was before and arguably easier to maintain Using a footer props (as html) is another solution that will eliminate 4 props. I would also pass in the children as props as well

George Moller 的头像
George Moller2 年前

Let's suppose you want to add a link just to one dropdown item (really common use case), you would have to either pass in a renderItem props to the dropdown or have a check inside the dropdown at the item level like && <a href=""... This is just one use case, usually you would have many of these. That doesn't scale. With this pattern you leave the extension/customization to the consumer (App) instead of bloating the Dropdown component.

Michał Janaszek 的头像
Michał Janaszek2 年前

When you get the task "use the Dropdown component (no mockups)" in the first implementation everyone knows exactly what the final look should be, in the second version the developer can create a completely different version than the creator of the task imagined.

George Moller 的头像
George Moller2 年前

If you don't get mockups/requirements, how would you know if you need to render a footer for example. The same can be said about the first implementation, the developer forgets to add a footer prop and the end result is different.

Shripal Soni 的头像
Shripal Soni2 年前

Nice tip to keep component open to extension, George 👍

George Moller 的头像
George Moller2 年前

Glad you liked it Shripal did you use/know this pattern in React before? It's quite useful

Atif Riaz 的头像
Atif Riaz2 年前

This is an amazing video.. keep them coming

George Moller 的头像
George Moller2 年前

Glad you liked it Atif did you know this pattern in React before?

Enrique Moreno 的头像
Enrique Moreno2 年前

Not a bad solution. I like it.

George Moller 的头像
George Moller2 年前

Glad you liked it Enrique!

相关视频