如何考量以及设计一个组件?
一点一点讲:
通用组件:
- 样式,在不同场景下的不同样式;比如一个button可能好几种样式,包括圆的方的,大小,颜色等等;
- 交互,比如一个button,点击的时候有不同的效果,比如loading,比如不可点击等等;
- 事件,浏览器事件的触发与阻止,与样式loading的交互等等;
- 高内聚低耦合:将相关逻辑放在一起,将
- 通用性:样式的通用性,允许用户自定义内容,比如表格项预留自己的内容
tsx
const columns = [
{
title: '名称',
dataIndex: 'name',
width: 200,
render(text) {
return <em>{text}</em>;
},
},
];
<Table columns={columns} />;业务组件:
https://www.cnblogs.com/leiting/p/13502864.html 可以需要在比较深入理解业务的情况下,再去封一些,内部自带请求和数据的业务组件; 因为我在字节遇到过那种复用的业务组件,它在不同的使用地方的有不同的差别,最后的解法只能是传一些字段进去,判断使用环境,来消除这些差别; 那么这种情况下,“复用”的优势的就没有体现,反而增加了项目的复杂度,成为了一种负担;
对于React:
对于React来说。应该使用不可变数据流,这样天然适合memo的浅比较;