zoukankan      html  css  js  c++  java
  • [React] Creating a Stateless Functional Component

    Most of the components that you write will be stateless, meaning that they take in props and return what you want to be displayed. In React 0.14, a simpler syntax for writing these kinds of components was introduced, and we began calling these components "stateless functional components". In this lesson, let's take a look at how to define a stateless function component, and how to integrate useful React features like Prop Type validation while using this new component syntax.

    Compnents with State:

    class Title extends React.Component {
      render(){
        return (
          <h1>{this.props.value}</h1>
        )
      }
    }
    
    class App extends React.Component {
      render(){
        return (
          <Title value="Hello World!" />
        )
      }
    }
    
    ReactDOM.render(
      <App />,
      document.querySelector("#root")
    )

    Conver Title component to stateless component:

    const Title =  (props) => (
      <h1>{props.value}</h1>
    )
    
    class App extends React.Component {
      render(){
        return (
          <Title value="Hello World!" />
        )
      }
    }
    
    ReactDOM.render(
      <App />,
      document.querySelector("#root")
    )

    So now you cannot access lifecycle hooks, anyway a dump compoennt doesn't need to handle those lifecycle hooks.

    But if you want to set defaultProps and propTypes, it is still possible:

    /*class Title extends React.Component {
      render(){
        return (
          <h1>{this.props.value}</h1>
        )
      }
    }
    */
    const Title =  (props) => (
      <h1>{props.value}</h1>
    )
    Title.propTypes = {
      value: React.PropTypes.string.isRequired
    }
    Title.defaultProps = {
      value: "Egghead.io is Awson!!"
    }
    
    class App extends React.Component {
      render(){
        return (
          <Title value="Hello World!" />
        )
      }
    }
    
    ReactDOM.render(
      <App />,
      document.querySelector("#root")
    )

    Statless compoennt rendering much fast than extends one.

  • 相关阅读:
    用Inno Setup来解决.NetFramework安装问题
    NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者
    NSIS
    Nullsoft教程 NSIS初学者图文教程一
    flex 实例Demo
    计算机组成原理
    Spring知识点提炼
    JAVA Web从前端到后台常用框架介绍
    使用navicat将mysql转换成sqlserver
    JDK 5 ~ 10 新特性倾情整理!
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5642209.html
Copyright © 2011-2022 走看看