Я хочу использовать реагирующий маршрутизатор для обработки различных маршрутов, проблема в каждом маршруте имеет собственный html (рассмотрим систему загрузки bootstap, каждая страница имеет свой собственный макет) Можно ли загружать различные html-скелеты для различного маршрута и прикреплять компоненты к соответствующему контейнеру? Альтернативное решение состоит в том, чтобы иметь общий html и помещать сетки в каждый compnent, но это solution понижает компонент reuaabilty Как я могу решить эту проблему?реагировать маршрутизатор с различными htmls
ответ
В вашей конфигурации маршрута просто создайте каждый путь, который вы хотите, чтобы иметь собственный макет с корневым маршрутом. Любые подпункты получат html-скелет из базового компонента.
modules.export = [
<Route path="firstSkeleton" component={FirstSkeleton}/>,
<Route path="secondSkeleton">
<Route path="home" component={SecondSkeleton}/>
</Route>,
...
<Route />
]
Каждый из вышеуказанных маршрутов может иметь свой собственный макет определяется в корневой компонент, а затем subroutes будет поглощение оттуда и наследовать.
Ниже приведен общий пример блога с домашней страницей в корне вашего приложения ('/'
). Он использует общий Layout
родительского компонент и гнездится компонент HomePageLayout
как ребенок Layout
.
При переходе к '/blog'
, реагировать-маршрутизатор генерирует компонент BlogListLayout
внутри из BlogLayout
"шаблон" по умолчанию. Если вы перейдете в конкретный блог, такой как '/blog/some-user-blog'
, BlogEntryLayout
будет отображать вместо него, и он все равно будет вложен в шаблон BlogLayout
.
'/about'
маршрута является примером простой страницы без каких-либо вложенных детей компонентов, но вы можете видеть, как легко вы можете добавить subroutes используя IndexRoute
и более Route
компонентов.
import ReactDOM from 'react-dom'
import { Router, Route, IndexRoute, browserHistory } from 'react-router'
ReactDOM.render(
<Router history={browserHistory}>
<Route path='/' component={Layout}>
<IndexRoute component={HomePageLayout}/>
<Route path='/profile/*' component={ProfilePageLayout}/>
</Route>
<Route path='/blog' component={BlogLayout}>
<IndexRoute component={BlogListLayout}/>
<Route path='/*' component={BlogEntryLayout}/>
</Route>
<Route path='/about' component={AboutLayout}/>
</Router>,
document.getElementById('app')
)
- 1. Перенаправление с реагировать маршрутизатор
- 2. Выполнение Перенаправление с реагировать-маршрутизатор
- 3. Настройка реагировать-маршрутизатор с сервером
- 4. реагировать-маршрутизатор ошибки машинописи
- 5. Реагировать маршрутизатор: сливаться запрос
- 6. реагировать маршрутизатор onChange
- 7. Реагировать маршрутизатор Отправка Принадлежит
- 8. иерархии реагировать маршрутизатор
- 9. Реагировать маршрутизатор: вложенные ресурсы
- 10. Реагировать маршрутизатор реквизита URL
- 11. Дополнительный Реагировать маршрутизатор параметр
- 12. Реагировать маршрутизатор реализация
- 13. Реагировать маршрутизатор Неожиданный маркер
- 14. Pass реагировать маршрутизатор как контекст
- 15. Реагировать Маршрутизатор Маршруты в Redux
- 16. Реагировать маршрутизатор hashHistory объяснил Цитата
- 17. реагировать маршрутизатор двойные вложенные маршруты
- 18. Реагировать маршрутизатор всегда отображающее IndexRoute
- 19. реагировать-маршрутизатор, маршруты не работают
- 20. Как издеваются реагировать-маршрутизатор контекст
- 21. реагировать-маршрутизатор навигация не работает
- 22. реагировать перевождь маршрутизатор не определен
- 23. реагировать маршрутизатор PushState не работает
- 24. компонент не определен реагировать-маршрутизатор
- 25. реагировать маршрутизатор требует не определен
- 26. реагировать-маршрутизатор это не определено
- 27. реагировать маршрутизатор this.props.children является «нулевым»
- 28. Реагировать Redux маршрутизатор не маршрутизации
- 29. реагировать маршрутизатор - получить текущий маршрут
- 30. реагировать-маршрутизатор строка соответствия запроса
Вы не разделяете, как выглядит ваш HTML-код? Я не уверен, есть ли у вас отдельные файлы HTML или если вы используете JSX. –