javascript - zz 为什么我总是会重写组件?

 青山儿云作伴 发布于 2022-11-11 08:26

入手React也有不短的时间了,从几个小后台实践开始,到正式引入redux等全家桶,React的工具链虽说没有搭建的很彻底,但是已经可以说不是入门状态的开发者。

zz from http://react-china.org/t/topi...
挺好的一个问题,想问问大家有什么建议

在编写组件的时候,遇到了一点疑惑,那就是我 经常会重写某个组件 。而一旦重写某个组件,有时候会更改组件的 props 。
一旦修改了组件的 prop ,不可避免地导致依赖这个子组件的容器也需要更新。如果一个组件用的比较多,改起来就会比较麻烦,总是担心会有隐患,毕竟代码不都是我写的。

我知道对于props来说,理想的扩展情况是只增加新的 prop ,尽量不删不改旧的 prop,但有时候还是不得不改。比如:

老prop不符合真实的语义和行为,容易在后期维护的时候引起歧义。
一开始划分组件就没划分好,后期需要对组件进行更细的拆分,有时候不可避免要调整prop
那么问题来了,除了在早期就对组件进行更细致和精确的划分(真的能完全做到吗?) 如何避免这种情况发生,即使要改,如何将影响降到最小?

又及,我发现这个问题并不仅仅是 React 的问题,而是 组件化 这种模式可能会带来的问题。
提到组件复用,我发现并不是那么容易的一件事情,它需要你将组件划分得足够细,或者业务也不会经常性地变化,否则难以完美复用。我总是会写着写着发现,要把这个东西单独拆成一个组件了,哪怕它可能只有一行,写完了我自己都不禁都会笑起来,感觉实在诡异。

希望能听到大家建设性的建议,从大家的讨论中得到最佳实践,谢谢!

2 个回答
  • 我对组件化的认识是,可维护性,然后才是可重用性。所有产品都是逐步迭代出来的,组件也可以看成是一个产品。具体如何迭代一个组件,需要根据实际情况斟酌。比如,如果是通用组件,不是大版本迭代的话,尽量不要影响以前的使用,做兼容性处理;而某个组件确实有问题,不做兼容当然也是可以的

    2022-11-12 01:54 回答
  • 个人的一个简单建议就是注意做一些容器来包裹组件,容器负责ajax或别的方式拉取数据,然后调用组件来渲染内容。而组件专注于内容的展示,不用考虑数据获取的逻辑。这样会使组件的重用性大大提高,可以参考Container Components

    2022-11-12 01:54 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有