React(四)—— props與render

props是組件固有屬性的集合,其數(shù)據(jù)由外部傳入,一般在整個(gè)組件的生命周期中都是只讀的

<input type="text" />

上方HTML 在 HTML語言中,type稱之為屬性,而在React中屬性稱之為prop

<script type="text/babel">
class HelloComponent extends React.Component{
    render(){
        return (
            <h1>Hello</h1>
        )
    }
}
ReactDOM.render(<HelloComponent/>,document.getElementById('div'))
</script>

這個(gè)格式要很清晰了哈

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

ReactDOM.render(<HelloComponent name="React" attr="666"/>,document.getElementById('div'))

組件的屬性集合即是React的props,可以打印一下看看props

    class HelloComponent extends React.Component{
        constructor(props){
            super(props)
            this.handleClick = this.handleClick.bind(this)
        }
        handleClick(){
            console.log(this.props)
        }
        render(){
            return (
                <div>
                    <h1>Hello,{this.props.attr,this.props.name}</h1>
                    <button onClick={this.handleClick}>GET</button>
                </div>
            )
        }
    }

ReactDOM.render(<HelloComponent name="React" attr="666"/>,document.getElementById('div'))

注意一下,render的return要有一個(gè)根節(jié)點(diǎn)并只有一個(gè),剛才又犯錯(cuò)了

打印出一個(gè)對(duì)象,就是組件的屬性集合{name: "React", attr: "666"},可以調(diào)用對(duì)象的屬性來取值了

props與state的區(qū)別

props不能被其所在的組件修改,從父組件傳遞進(jìn)來的屬性不會(huì)在組件內(nèi)部更改;state只能在所在組件內(nèi)部更改,或在外部調(diào)用setState函數(shù)對(duì)狀態(tài)進(jìn)行間接修改。

render函數(shù)

首先說render是一個(gè)函數(shù),它對(duì)于組件來說,render函數(shù)是必需的。render函數(shù)的主要流程是檢測this.props和this.state,再返回一個(gè)單一組件實(shí)例。

render函數(shù)應(yīng)該是純粹的,也就是說,在render函數(shù)內(nèi)不應(yīng)該修改組件state,不讀寫DOM信息,也不與瀏覽器交互。如果需要交互,應(yīng)該在生命周期中進(jìn)行交互。

內(nèi)容有點(diǎn)少 O(∩_∩)O~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 作為一個(gè)合格的開發(fā)者,不要只滿足于編寫了可以運(yùn)行的代碼。而要了解代碼背后的工作原理;不要只滿足于自己的程序...
    六個(gè)周閱讀 8,684評(píng)論 1 33
  • HTML模版 之后出現(xiàn)的React代碼嵌套入模版中。 1. Hello world 這段代碼將一個(gè)一級(jí)標(biāo)題插入到指...
    ryanho84閱讀 6,448評(píng)論 0 9
  • React簡介 (1)簡介 React 起源于 Facebook 的內(nèi)部項(xiàng)目,因?yàn)樵摴緦?duì)市場上所有 JavaSc...
    魚魚吃貓貓閱讀 1,754評(píng)論 1 6
  • 本筆記基于React官方文檔,當(dāng)前React版本號(hào)為15.4.0。 1. 安裝 1.1 嘗試 開始之前可以先去co...
    Awey閱讀 7,933評(píng)論 14 128
  • 由于自身的慣常行為,總是以為說書稿和拆書稿非常難寫,不愿意開始寫,難寫的原因其實(shí)也很簡單。 我認(rèn)為它們需要做到一定...
    什剎海_男閱讀 589評(píng)論 2 51

友情鏈接更多精彩內(nèi)容