react component分类

  • 展示组件(也可以叫做Dumb定义:只会接收props并根据props确定渲染结果的组件
    • 特点:复用性极高

    • 划分原则:我们开发一个控件,首先确定会不会被复用,只要被复用就要开发成展示组件
      若果存在Dumb的子组件,那一定是Dumb组件
      所有Dumb都会放在components目录下

    • 为什么这么划分:对于Dumb来说依赖的东西越少越好
      依赖的越少复用性越高


  • 容器组件(也可以叫做)定义:专门用来做数据相关的应用逻辑,拉取数据,把Dumb关联起来,通过props传递给Dumb

    • 特点:处理业务数据逻辑,调度子组件

    • 划分原则:容器组件我理解是倒推出来的,比如“在某个业务场景中你需要把几个容展示组件拼凑起来,并且需要一个调度管理这几个展示组件的角色,那么你需要一个容器组件
      ‘基本’不存在复用,需要和redux做连接connect,有处理异步数据操作的组件
      所有smart都会放在container目录下

    • 为什么这样划分:smart不用考虑太多复用性的问题,他们用是用来执行特定业务逻辑的
      smart组件通常都有子组件,可为smart或Dumb


  • 函数式无状态组件(stateless function)0.14后推出的一种组件编写方式
    • 无状态组件和纯函数的结合

      • 无状态组件:内部没有state,输出只取决于props, context
      • 纯函数:相同的输入,输出永远相同,没有可观察的任何副作用(不会更改传入值)
    • 接收props, context

const PropTypes = require('prop-types');

const Button = ({children}, context) =>
  <button style={{background: context.color}}>
    {children}
  </button>;

Button.contextTypes = {color: PropTypes.string};
  • 为什么要用

    • 语法简洁性(fb推荐理由)
    • 占内小
    • 首次render性能更好
    • 可扩展性强(可以进行函数的compose,currying改造)
  • 缺点:

    • 无生命周期(不能在shouldComponentUpdate进行浅对比优化渲染)
    • 没有this
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 前言 在 React 中,一切皆是组件,因此理解组件的工作流与核心尤为重要。我们有多种创建组件的方式(不仅 ...
    cbw100阅读 8,989评论 0 10
  • 项目地址 从头开始建立一个React App - 项目基本配置 npm init 生成 package.json ...
    瘦人假噜噜阅读 89,660评论 33 78
  • react 基本概念解析 react 的组件声明周期 react 高阶组件,context, redux 等高级...
    南航阅读 4,717评论 0 1
  • 本笔记基于React官方文档,当前React版本号为15.4.0。 1. 安装 1.1 尝试 开始之前可以先去co...
    Awey阅读 12,322评论 14 128
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,005评论 25 709

友情链接更多精彩内容