最近开始用redux结合react,里面要写一堆components,如果我们能正确的分好smart和dumb,那么对我们的app都大有裨益。
smart组件,相当于一个大盒子,container级别的。他来改变整个应用的state以及向子组件传props,具有的特征:
一定没有自己的css样式
很少有自己的DOM,都是由dumb组件拼成的layout
包含一个或多个dumb|smart组件
与store中的state关联,并把state以对象的形式传给dumb组件作为props
一般会调用action里的function,把这些也当做props传给dumb作为cb
dumb组件,就是细分的小组件,他只要接收props就好了,如果有state也应该与全局的无关。
有css文件
一堆dom代码
可能会用其他的dumb组件
通过接收props来实现各种数据,和函数的回调处理,很少有自己的state
很少与应用的逻辑处理部分关联
可以用this.props.children获取到
smart dumb分开的好处
UI和app的区别,更容易重利用,容易测试每个组件,可以用this.props.children来代替复制