元件接收資料props
- 必須繼承React.Component才可以成為一個類元件
- render方法的作用:産生元件的模闆,屬于react的核心api,名稱固定
- 必須通過this.props擷取父元件傳遞資料,是隻讀的,不可以修改。
class Nihao extends React.Component {
render () {
console.log(this.props)
let uname = this.props.uname
return (
<div>
類元件: {uname}
</div>
)
}
}
類元件狀态state
狀态是元件私有的,并且完全被元件控制(隻有類元件有狀态,函數元件沒有狀态)。
類元件的資料來源有兩個:
- 内部的狀态state
- state可以修改
- 不要直接修改 State,使用
來更新類元件 state。this.setState()
- 構造函數是唯一可以給
指派的地方。this.state
- 父元件傳遞的props
- 是隻讀的,不可以修改
class StateTest extends React.Component {
constructor (props) {
// 類元件第一行需要添加super并且傳遞props參數
super(props)
this.state = {
info: 'nihao'
}
}
// 類元件的内部狀态需要使用state名稱
// 類元件狀态的簡化寫法
state = {
info: 'hello'
}
render () {
const { info } = this.state
const { msg } = this.props
return (
<div>
<h1>有狀态的元件:{info}</h1>
<h1>有狀态的元件:{msg}</h1>
</div>
)
}
}