我正试图了解2048 via his github repo.游戏的Dimitar Valchanov React代码
他还写了一篇关于它的博客,但他希望一个人自己阅读代码,而更愿意在this blog中解释代码的结构。 (*尽管他已经在代码中包含了注释以使其更易于理解)。
在尝试理解他的代码时,我面临的主要问题是第一,我经验不足和第二,他的代码已经老了
在查看他的代码时,我发现了一些我无法理解的东西。
[问题:1] ,他在导入statements in this file时曾使用过类似的方法
import {Board, Result} from "js/components";
import * as Actions from "js/actions/actions";
他如何才能正确js
并返回到src
,然后遍历给定的存储库。
如果我去过,我会写这样的东西 从“ ../components”导入Board; 从“ ../components”导入结果;
问题:“ js”在这里是什么意思,他如何能够使用单个语句即import {Board, Result} from "js/components";
[问题:2] In the same file他写了这样的东西
this.actions = bindActionCreators(Actions, this.props.dispatch);
我原本打算一起分发所有redux动作,但是我似乎错了,因此我无法理解this.actions里面的内容
因此这行也没有意义
getChildContext() {
return {
actions: this.actions
};
}
问题:有人可以解释一下上面发生的事情吗?
答案 0 :(得分:0)
问题1:
import语句不是旧语法或不建议使用。这只是从ES6模块导入代码的另一种方法。
import {Board, Result} from "js/components";
和
import Board from "../components/Board";
import Result from "../components/Result";
都是导入代码的完全有效的方法。由您决定如何执行。
这是解释Named Exports vs Default Exports的链接。
js/components
只是指向其文件here的目录路径
问题2:
this.actions
中的内容是许多包装在dispatch(...)中的函数,这些函数准备被分派到Redux,以便在调用时对存储执行操作。
通过以下方法
getChildContext() {
return {
actions: this.actions
};
}
它基本上只会返回this.actions。
此代码并不古老,在解释bindActionCreators method时仍在Redux网站上使用。