2
我有這段代碼。根據所選菜單進行緩存內容更改
class Component {
state = {
selectedView: 'foo',
}
onMenuClicked(event, menuItem) {
switch(menuItem) {
case 'foo':
this.setState({ selectedView: 'foo'})
break;
case 'bar':
this.setState({ selectedView: 'bar'})
break;
}
}
renderBar() {
return <Bar />
}
renderFoo() {
return <Foo />
}
renderContent() {
switch(this.state.selectedView) {
case 'foo':
return this.renderFoo();
case 'bar':
return this.renderBar();
}
}
render() {
return(
<div>
<Menu onMenuSelected((e, menuItem) => this.onMenuClicked(e, menyItem)) /> // items foo and bar
{this.renderContent()}
</div>
)
}
這工作得很好。然而,由於foo和bar成分很重以及用戶在這些組件之間切換的機率很高,我想有這種流動的,
- 在頁面加載,解析foo
- 如果欄第一次點擊,渲染欄
- 對於所有後續的菜單更改,只需隱藏/顯示foo/bar組件(基於單擊的菜單),並且不會在每次更改菜單時重新加載它們。
我需要適應我的代碼(最乾淨的方式)有這樣的行爲。任何幫助,將不勝感激。謝謝。