React -- 组件封装&props

Posted zjh-study

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React -- 组件封装&props相关的知识,希望对你有一定的参考价值。

一、组件封装

一个函数就是一个组件,该函数接受一个props对象,并返回一个React元素

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

通过class和React.Component也可以定义一个组件,跟上面的组件是等价的

class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

二、声明组件

感觉其实声明一个React元素,只不过这个元素是以组件名字命名的类似单标签模式,里面写入要传入的props
比如上面创建的是Welcome组件,那么渲染时就是这样的
TipsReact中,自己封装的组件名字必须以大写字母开头,否则会识别为原生DOM标签

const element = <Welcome name="World" />

三、渲染组件

通过ReactDOM.render()函数就可以将组件渲染出来了

ReactDOM.render(
  element,
  document.getElementById('root')
);

四、组件嵌套

可以在组件里面,嵌套使用别的组件,比如创建一个新的App组件,在里面重复调用Welcome组件,然后渲染出去

function App() {
  return (
    <div>
      <Welcome name="World" />
      <Welcome name="React" />  
    </div>
  )
}

渲染

ReactDOM.render(<App />,document.getElementById('root'))

五、组件分离

其实组件分离有点类似vue的组件化开发,可以把任何一个功能当成是一个组件,单独分离出来,以备复用,这个组件分离就是将一个复杂的组件里面的一些数据单独提取出来组成一个新的组件
比如上面的App组件,正常应该是这样的:

function App() {
  return (
    <div>
      <h1>Hello World</h1>
      <h1>Hello React</h1>  
    </div>
  )
}

然后把h1标签部分提取出来为一个单独的组件使用,就变成了这样,成为一个Welcome组件

function App() {
  return (
    <div>
      <Welcome name="World" />
      <Welcome name="React" />  
    </div>
  )
}

以上是关于React -- 组件封装&props的主要内容,如果未能解决你的问题,请参考以下文章

视频更新ReactJs-第3节-组件&props

React-render-props和高阶组件

React学习笔记 - 组件&Props

React 的组件与 this.props对象

React Native props & state

React中的render props,让组件复用(共享)变得简单,你还不赶紧掌握它?