React. Базовый пример повторного рендеринга с использованием response-router. +100 представитель - PullRequest
0 голосов
/ 05 июля 2018

Я новичок. И я новичок в React. Я пытаюсь react-router. Я видел этот пример: https://reacttraining.com/react-router/web/example/basic.

Я воспроизвел его на Codesandbox.io здесь: https://codesandbox.io/s/7jxq0j6qp0

Я не понимаю, почему меню перерисовывается, когда я меняю URL, используя ссылки меню.

enter image description here

Если вы откроете консоль, вы увидите ее.

Почему?

Я думаю, что он не должен перерисовываться сам. Просто раздел маршрута. Где я не прав?

1 Ответ

0 голосов
/ 05 июля 2018

Вы можете написать свой компонент как PureComponent. Так как сейчас нет изменений реквизита, он не будет перерисован:

class Menu extends React.PureComponent {
  render() {
    console.log("Menu render() - ", Date.now());
    return (
      <div>
        <ul>
          <li>
            <Link to="/">Home</Link>
          </li>
          <li>
            <Link to="/about">About</Link>
          </li>
          <li>
            <Link to="/topics">Topics</Link>
          </li>
        </ul>

        <hr />
      </div>
    );
 }
}

Но, , пожалуйста, обратите внимание на отрицательные стороны этого метода для других случаев использования: Работа с блокировкой обновлений

...