《React+Redux前端开发实战》—2.1.3 无状态组件

举报
华章计算机 发表于 2019/07/24 23:32:29 2019/07/24
【摘要】 本节书摘来自华章计算机《React+Redux前端开发实战》一书中的第2章,第2.1.3节,作者是徐顺发.

2.1.3  无状态组件

  下面来看看无状态组件,它是React 0.14之后推出的。如果一个组件不需要管理state,只是单纯地展示,那么就可以定义成无状态组件。这种方式声明的组件可读性好,能大大减少代码量。无状态函数式组件可以搭配箭头函数来写,更简洁,它没有React的生命周期和内部state。

  无状态函数式组件示例:

  

  const HelloComponent = (props) =>(

   <div>Hello {props.name}</div>

  )

  ReactDOM.render(<HelloComponentname="marlon"/>, mountNode)

  

  无状态函数式组件在需要生命周期时,可以搭配高阶组件(HOC)来实现。无状态组件作为高阶组件的参数,高阶组件内存放需要的生命周期和状态,其他只负责展示的组件都使用无状态函数式的组件来写。

  有生命周期的函数式组件示例:

  

  import React from 'react';

  export const Table = (ComposedComponent) => {

      return class extends React.Component {

        constructor(props) {

            super(props)

        } 

        componentDidMount() {

            console.log('componentDidMount');

        }

        render() {

          return (

              <ComposedComponent {...this.props}/>

          )

        }

      }     

  }

注意:React 16.7.0-alpha(内测)中引入了Hooks,这使得在函数式组件内可以使用state和其他React特性。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。