Dumb组件和Smart组件 区别与作用

Dumb组件:在react中,只会接收props,根据props进行渲染的组件称为Dumb组件。

                    Dumb组件不依赖除了React.js和Dumb组件以外的内容,Dumb组件是最纯粹的,可复用性最好的组件。

Smart组件:单靠Dumb组件无法构建应该程序,因为它们除props外,不依赖其他外部的内容,因而无法获取数据。这就需要另一种组件,它们非常“聪明”,专门从事数据相关的应用逻辑,如与Ajax交互等,这种组件称为Smart组件。

Dumb组件与Smart组件的关系:Smart组件负责数据相关的应用逻辑,将获取到的数据通过props传递给Dumb组件,Dumb负责UI的呈现。

Smart组件一般作为Dumb组件的父组件,如下图:

举一个简单的例子:TableShow是一个显示表数据的Dumb组件,TableShowContainer是一个Smart组件,负责与后台进行数据交互,将接收到的数据传递给TableShow,再由TableShow渲染到页面。

你也许会问,那我直接由Smart组件获取到数据后直接渲染到页面不就行了,为什么还要再传递给一个Dumb组件。

确实Smart组件可以包含Dumb组件,将数据直接渲染到页面。但是Dumb组件的目的是为了高度复用。

假设一种场景,SmartA与SmartB是两个实现不同业务功能的组件,它们都可以对Table数据进行更新。如果直接在Smart组件中进行渲染,那么同一段渲染Table的代码,需要在两个Smart组件中分别写一遍。如果我们将渲染Table这一操作抽离成一个Dumb组件,那么只需要在SmartA获取到后台更新数据时,将数据通过props传给Dumb组件,即可实现Tabke数据的更新,SmartB同理。

不止是大的项目需要严格且有逻辑的组件层划分,在平时的学习以及练习中,应养成一种好的逻辑思维,让它变成一种习惯,才不会手忙脚乱。


摘自:https://blog.csdn.net/u012131835/article/details/83823977 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值