Понимание операторов импорта и чужого старого кода реакции - PullRequest
0 голосов
/ 20 ноября 2018

Я пытался понять код React Димитра Вальчанова для игры 2048 через его репозиторий github.

Он также написал блог об этом, но он хочет, чтобы человек сам прошел через код и скорее объяснил структуру кода в этом блоге . (* Хотя он включил комментарии в код, чтобы сделать его более понятным).

Основная проблема, с которой я сталкиваюсь, пытаясь понять его код, заключается в 1-м моем отсутствии опыта и 2-м. Его код уже устарел

При просмотре его кода я обнаружил несколько вещей, которые я не смог понять.

[Вопрос: 1] В своих утверждениях в этом файле , он использовал что-то вроде этого

import {Board, Result} from "js/components";
import * as Actions from "js/actions/actions";

Как он может направить js и вернуться к src, а затем пройти через данный репо.

Если бы я был, я бы написал что-то вроде этого импорт платы из "../components"; Результат импорта из "../components";

Вопрос: Что здесь означает «js» и как он может экспортировать два разных файла, используя одно утверждение, т.е. import {Board, Result} from "js/components";

[Вопрос: 2] В том же файле он написал что-то вроде этого

this.actions = bindActionCreators(Actions, this.props.dispatch);

Который, как я думал, отправляет все редукционные действия вместе, но я, кажется, ошибаюсь, и, следовательно, я не могу понять, что находится внутри моего this.actions

И, следовательно, эта строка также не имеет смысла

 getChildContext() {
    return {
      actions: this.actions
    };
  }

Вопрос: Может кто-нибудь объяснить, что происходит выше?

1 Ответ

0 голосов
/ 20 ноября 2018

Вопрос № 1:

Оператор импорта не является старым синтаксисом или устарел.Это просто еще один способ импорта кода из модуля ES6.

import {Board, Result} from "js/components";

и

import Board from "../components/Board";
import Result from "../components/Result";

являются совершенно правильными способами импорта кода.Вам решать, как вы хотите это сделать.

Вот ссылка, которая объясняет Именованные экспорты по сравнению с экспортом по умолчанию .

js/components - это просто путь к каталогукоторый указывает на его файл здесь

Вопрос № 2:

Что внутри this.actions - это множество функций, обернутых в диспетчере (...)готов к отправке в Redux для выполнения действий над хранилищем после вызова.

В следующем методе

getChildContext() {
    return {
      actions: this.actions
    };
}

он просто возвращает this.actions, в основном.

Этот код не старый и все еще используется на сайте Redux при объяснении метода bindActionCreators .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...