React 组件为什么不推荐继承?

写代码时候想到 React 组件可不可以继承,查了一下资料确实是可以继承,但是大部分人都说不推荐继承,请问原因是什么呢?

阅读 15k
5 个回答

主要考虑的还是代码质量的问题,如果2个组件本身业务比较复杂,做成继承的方式,就很不好,当你在看子组件的时候,你还要去父组件里看,react希望你一个组件只专注于一件事。
因此,我建议如果是抽象类的话可以做成继承,如果是2个实际都会被使用到的组件的话,尽量不要去用继承的方式,而是拆分成更小的组件,用fb推荐的高阶组件的方式去做。

可以看看这篇文章Composition vs Inheritance

大体来说,不过是组合更适合react的风格,因为react是基于组件的。而且整个react社区也是以组合为主,与社区保持统一的好处很多。

当然,继承也是可以用,但是在没有绝对的好处的情况下用继承显然不是个明智的选择。

这个和你在面向对象编程时,组合优于继承的原因是一样的。组合具有更好的灵活性和扩展性,你要多编写一些代码后,才能真正体会到这里面的好处。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题