いいえ、App
コンポーネントの内部にあるものは、ルート設定内でApp
をルートコンポーネントとして定義しないかぎり表示されるとは限りません。上記のコードで
例えば
<Router history={browserHistory}>
<Route path="/" component={App}>
<Route path="about" component={About}/>
<Route path="users" component={Users}>
<Route path="/user/:userId" component={User}/>
</Route>
<Route path="*" component={NoMatch}/>
</Route>
</Router>
<Route path="/" component={App}>
を規定App
最初に表示されるコンポーネントと、他のすべてのルートパスはApp
構成要素の子であるせます。あなたの質問の後半部分について
ので
- しかし、子供のような他の構成要素を表示するために -
はい、あなたが正しいです「のルートがその子の一部として、アプリケーションの内部で表示するかを定義、正しいことです」ルートコンポーネントの、あなたはそれで言及経由でルートコンポーネントのメソッドをレンダリングする必要が
{this.props.children}
例えば
const App = React.createClass({
render() {
return (
<div>
<h1>App</h1>
<ul>
<li><Link to="/about">About</Link></li>
<li><Link to="/users">users</Link></li>
</ul>
{this.props.children}
</div>
)
}
})
これで、URLが/
の場合、ルートがApp
、ルートがまたは/users
の子コンポーネントがApp
、つまりAbout
またはUsers
のコンポーネントで表示されているとします。
ルートコンポーネントApp
は、ヘッダー、ナビゲーションバー、フッターを静的コンテンツとして表示するテンプレートのようなものです。しかし、あなたの言う身体部分
{this.props.children}
あなたの子供のコンポーネントであなたのルートが変更されると、変更されています。
また、ルート定義内のコンポーネントも自然に使用しますか? – Mahoni
また、ヘッダーやフッターなどの主要なアプリケーションフレームを持っていなくても、メインのコンテンツが間にあり、それを定期的に操作したい場合はどうすればよいでしょうか。それがそのコンセプトに何をもたらすのでしょうか? – Mahoni
@Mahoniヘッダーやフッターを提供したい場合は、あなたに任せます。メインコンポーネントはいつでも操作できます。私はちょうど例としてテンプレートをくれました。 – WitVault