繼續(xù)拓展前面的例子,現(xiàn)在我們已經(jīng)有了 Header
組件了。愛掏網(wǎng) - it200.com假設(shè)我們現(xiàn)在構(gòu)建一個(gè)新的組件叫 Title
,它專門負(fù)責(zé)顯示標(biāo)題。愛掏網(wǎng) - it200.com你可以在 Header
里面使用 Title
組件:
class Title extends React.Component {
render () {
return (
React 小書
)
}
}
class Header extends React.Component {
render () {
return (
)
}
}
ReactDOM.render(
,
document.getElementById('app')
)
我們可以直接在 Header
標(biāo)簽里面直接使用 Title
標(biāo)簽。愛掏網(wǎng) - it200.com就像是一個(gè)普通的標(biāo)簽一樣。愛掏網(wǎng) - it200.comReact.js 會(huì)在
所在的地方把 Title
組件的 render
方法表示的 JSX 內(nèi)容渲染出來,也就是說
會(huì)顯示在相應(yīng)的位置上。愛掏網(wǎng) - it200.com如果現(xiàn)在我們?cè)?React 小書
Header
里面使用三個(gè)
,那么就會(huì)有三個(gè) 顯示在頁面上。愛掏網(wǎng) - it200.com
這樣可復(fù)用性非常強(qiáng),我們可以把組件的內(nèi)容封裝好,然后靈活在使用在任何組件內(nèi)。愛掏網(wǎng) - it200.com另外這里要注意的是,自定義的組件都必須要用大寫字母開頭,普通的 HTML 標(biāo)簽都用小寫字母開頭。愛掏網(wǎng) - it200.com
現(xiàn)在讓組件多起來。愛掏網(wǎng) - it200.com我們來構(gòu)建額外的組件來構(gòu)建頁面,假設(shè)頁面是由 Header
、Main
、Footer
幾個(gè)部分組成,由一個(gè) Index
把它們組合起來。愛掏網(wǎng) - it200.com
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
class Title extends Component {
render () {
return (
React 小書
)
}
}
class Header extends Component {
render () {
return (
)
}
}
class Main extends Component {
render () {
return (
)
}
}
class Footer extends Component {
render () {
return (
)
}
}
class Index extends Component {
render () {
return (
)
}
}
ReactDOM.render(
,
document.getElementById('root')
)
最后頁面會(huì)顯示內(nèi)容:
組件可以和組件組合在一起,組件內(nèi)部可以使用別的組件。愛掏網(wǎng) - it200.com就像普通的 HTML 標(biāo)簽一樣使用就可以。愛掏網(wǎng) - it200.com這樣的組合嵌套,最后構(gòu)成一個(gè)所謂的組件樹,就正如上面的例子那樣,Index
用了 Header
、Main
、Footer
,Header
又使用了 Title
。愛掏網(wǎng) - it200.com這樣用這樣的樹狀結(jié)構(gòu)表示它們之間的關(guān)系:
這里的結(jié)構(gòu)還是比較簡單,因?yàn)槲覀兊捻撁娼Y(jié)構(gòu)并不復(fù)雜。愛掏網(wǎng) - it200.com當(dāng)頁面結(jié)構(gòu)復(fù)雜起來,有許多不同的組件嵌套組合的話,組件樹會(huì)相當(dāng)?shù)膹?fù)雜和龐大。愛掏網(wǎng) - it200.com理解組件樹的概念對(duì)后面理解數(shù)據(jù)是如何在組件樹內(nèi)自上往下流動(dòng)過程很重要。愛掏網(wǎng) - it200.com
- 用 React.js 組建的房子
我的答案: