Реагировать на Router Match Miss

В чем преимущество использования компонентов Match и Miss от react-router по компоненту Router? Я не могу найти документацию об этом в документах-ответах-адаптерах.

Мой вопрос возникает из рассмотрения react-universally шаблона, точнее, здесь: <а2 >

Ответы

Ответ 1

<Match> и <Miss> были компонентами альфа-релиза React Router v4.

В бета-версии <Match> было переименовано <Route> (и его реквизиты изменены так, что pattern теперь path и exactly есть exact). Компонент <Miss> полностью удален. Вместо этого вы должны использовать оператор <Switch>, который будет отображать только первый <Route> (или <Redirect>), который соответствует. Вы можете добавить бесконтактный компонент в качестве последнего дочернего элемента маршрутов <Switch>, и он будет отображаться, если ни один из предыдущих <Route> не соответствует.

Подробнее об этом можно узнать в документации API.

<Switch>
  <Route exact path='/' component={Home} />
  <Route path='/about' component={About} />
  // The following <Route> has no path, so it will always
  // match. This means that <NoMatch> will render when none
  // of the other <Route>s match the current location.
  <Route component={NoMatch} />
</Switch>

Ответ 2

И чтобы добавить к последнему сообщению, вы найдете это в react-router-dom. Он больше не находится в основной библиотеке реактивного маршрутизатора.

Здесь шаблон, который я нашел, работает для реакции маршрутизации. Как и в предыдущих плакатах, в основном. Вам нужно будет создать дополнительные компоненты.

import {BrowserRouter as Router, Route, Switch} from 'react-router-dom';

{/* Импортируйте свои компоненты здесь */}

 class Root extends React.Component{
        render(){
            return(
                <div>
                <Router>
                    <div> 
                        <Switch>
                            <Route exact path='/' component={App} /> )} />
                            <Route path="/some-component"  component={SomeComponent} /> 
                            <Route component={NotFound}/>
                        </Switch>
                    </div>
                </div>
            ); }
    }



    render(<Root/>, document.querySelector('#main'));