04 Component & Props

1. 组件定义

  • 组件将UI拆分成多个独立可复用的代码片段
  • 概念上类似于JS函数,接收任意入参(props),返回React元素

2. 组件类型

函数组件

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

class组件

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

3. 组件渲染

React元素不限是DOM元素,也可以是用户自定义组件

const element = <Welcome name="sara" />
ReactDOM.render(
  element,
  document.getElementById('root')
)
  • 当React元素是用户自定义组件时,它会将JSX接收到的属性(attribute)以及子组件(children)转换为单个对象(props)传递给组件
  • React组件名称必须以大写字母开头,小写字母开头组件会被视作DOM标签

4. 组合组件

可以在父组件的输出中引用其他组件,这样就可以抽象出多层次

function App () {
  return (
    <div>
      <Header />
      <Main />
      <Footer />
    </div>
  )
}

相反,当某个组件过大/过于复杂时,可以将组件不同部分抽象提取出来

5. Props的只读性

  • 无论是函数组件,还是类组件都决不能修改自身的props
  • 所有React组件必须像纯函数一样保护其props不被改变
  • 在不违反上述规则的情况下,State允许React组件根据用户操作、网络响应、动态更改输出内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值