繼續拓展前面的例子,現在我們已經有了 Header
組件了。愛掏網 - it200.com假設我們現在構建一個新的組件叫 Title
,它專門負責顯示標題。愛掏網 - 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
標簽里面直接使用 Title
標簽。愛掏網 - it200.com就像是一個普通的標簽一樣。愛掏網 - it200.comReact.js 會在
所在的地方把 Title
組件的 render
方法表示的 JSX 內容渲染出來,也就是說
會顯示在相應的位置上。愛掏網 - it200.com如果現在我們在 React 小書
Header
里面使用三個
,那么就會有三個 顯示在頁面上。愛掏網 - it200.com
這樣可復用性非常強,我們可以把組件的內容封裝好,然后靈活在使用在任何組件內。愛掏網 - it200.com另外這里要注意的是,自定義的組件都必須要用大寫字母開頭,普通的 HTML 標簽都用小寫字母開頭。愛掏網 - it200.com
現在讓組件多起來。愛掏網 - it200.com我們來構建額外的組件來構建頁面,假設頁面是由 Header
、Main
、Footer
幾個部分組成,由一個 Index
把它們組合起來。愛掏網 - 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')
)
最后頁面會顯示內容:
組件可以和組件組合在一起,組件內部可以使用別的組件。愛掏網 - it200.com就像普通的 HTML 標簽一樣使用就可以。愛掏網 - it200.com這樣的組合嵌套,最后構成一個所謂的組件樹,就正如上面的例子那樣,Index
用了 Header
、Main
、Footer
,Header
又使用了 Title
。愛掏網 - it200.com這樣用這樣的樹狀結構表示它們之間的關系:
這里的結構還是比較簡單,因為我們的頁面結構并不復雜。愛掏網 - it200.com當頁面結構復雜起來,有許多不同的組件嵌套組合的話,組件樹會相當的復雜和龐大。愛掏網 - it200.com理解組件樹的概念對后面理解數據是如何在組件樹內自上往下流動過程很重要。愛掏網 - it200.com
- 用 React.js 組建的房子
我的答案: