问题标签 [ecmascript-next]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 请解释在这种情况下使用扩展运算符
我刚开始使用 reactjs,在处理 react databatle 时遇到了这个片段:
我的问题如下:
const {rowIndex, field, data, ...props} = this.props;
据我了解,这可以解释为
并且 ...props 将确保它获取 this.props 的所有对象,不包括 rowIndex、字段和数据。我对么?
所以我的问题是,如果不是...props
说,...somethingElse
会被用来使两个“道具”看起来不同,这不是更好吗?
- ...props实际上
<Cell {...props}>
包含什么?this.props 的所有对象还是除 rowIndex、字段、数据等之外的“剩余”对象?
这是获取片段的链接: https ://facebook.github.io/fixed-data-table/getting-started.html
javascript - 有没有办法让异步/等待流程短路?
下面调用的所有四个函数作为update
回报承诺。
如果我们想在任何给定时间从外部中止序列怎么办?
例如,在fetchMetaData
执行时,我们意识到我们不再需要渲染组件,我们想取消剩余的操作(fetchContent
和render
)。有没有办法从update
函数外部中止/取消这些操作?
我们可以在每个 之后检查一个条件await
,但这似乎是一个不优雅的解决方案,即使这样我们也必须等待当前操作完成。
javascript - ES6 React:ES.Next 的 @autobind 是否会为每个实例只绑定一次方法?
有很多关于在 ES6 React 中处理绑定的方法的问题/文章,但大多数似乎都没有解决React 文档中概述的问题(强调我的):
我们建议您在构造函数中绑定事件处理程序,以便 每个实例只绑定一次:
对于上下文,他们建议不要对方法进行内联绑定,例如:
当然。但是在构造函数中绑定每个方法的推荐解决方案对于很多方法来说很麻烦,所以我在类级别查看 ES.Next @autobind 装饰器作为一个简单的解决方案:
我想不通的是:这个装饰器会和内联绑定方法有同样的缺点吗?即,每个实例的方法是否只绑定一次?
如果没有,是否有避免这种陷阱的简洁解决方案?
javascript - 我们如何在浏览器中使用 javascript await 运算符,只添加一个第三方库?
我们如何await
使用外部 javascript 库在浏览器中使用 javascript 运算符?
例如,如果我们有以下 html 代码:
我们可以使用哪些库(awesome.lib.js
这些库在哪里)将 await 运算符带到浏览器?我们如何编写一个工作示例?
我知道我们可以转换代码,但我正在寻找一个聪明的解决方案,我们可以添加一个第三方库,瞧,它可以工作!
如果我们使用 Google Traceur Transpiler,我们可以转译代码 ( http://jsfiddle.net/msfrisbie/yk6r7gxr/ ) 并获得如下所示的代码。但问题是我们需要先转译代码。另一件事是我想避免使用一些不是 javascript 之类的东西<script type='text/whatevernotjavascript'>...code...code</script>
。我们应该怎么做?这将是非常棒的,实用和救世主。
javascript - 异步/等待获取的 ES7 超时
我想在我的方法中设置超时fetch
,我关注这个 github 问题。
从@mislav 的回答中,我们可以自定义超时方法,如下所示。
并由@nodkz改进
但我想在 ES7 async/await 语法中调用该方法,我尝试以下方式但失败了。
以及如何在 ES7 async/await 语法中使用它?
谢谢你的时间。
更新
感谢@Bergi的回复,我在http 请求步骤中显示了我的代码。
ES7 抓取
ES6 抓取
上面的 ES6 fetch 会捕获下面的输出,我认为@Bergi是对的,这是我的代码错误,而不是timeoutPromise
错误。
javascript - 解构对象并忽略其中一个结果
我有:
在里面this.props
,我有一个styles
我不想传递给克隆元素的属性。
我能怎么做?
javascript - 通过模块文件导入未定义第一个事件队列
我有一个 React 项目,我通过一个文件保持所有组件可用,所以不要这样做
我有一个components.js
-file
所以我可以
我的问题是Foo
,Bar
和我以这种方式导入的任何其他内容都是undefined
针对第一个“事件队列”的,也就是说,如果我有这个文件
它会输出
对于普通的 React 组件(函数或类),这并没有造成任何问题,但是当我尝试使用 Redux 的connect
-function 创建容器组件时,它会抱怨输入为undefined
. 我猜这是因为当我声明 React 组件时,引用并没有直接引用,但是当我调用connect
-function 时,它会立即尝试访问该组件并看到它是undefined
. 不过,这只是我未受过教育的假设。
为什么会发生这种情况,我该如何预防?我认为这可能是 Stage 1 transform-export-extensions plugin的问题,但我使用了不同的语法 - 例如export const Foo = require("./Foo").default
- incomponents.js
并且问题仍然存在。
javascript - 扩展/装饰 Angular 2 组件和指令
我有一些 Angular 2 中组件和指令的继承和装饰(如装饰器模式)的用例。
该示例是具有不适合这种情况的基本模板的组件,以至于定义新模板而不是以编程方式修改现有模板的 DOM 更容易。其余的组件元数据应该被继承。
基本上是
更复杂的情况是
请注意,它ThirdPartyComponent
有许多输入。在某些情况下,在内部修改组件而不是包装它并从外部修改其行为是有益的。在模板中枚举它们并将它们传输到ThirdPartyComponent
可能是 WET 和脏的包装器组件:
在某些情况下,可能会禁止包装组件引入的额外布局元素。
ThirdPartyComponent
可能是其他第三方组件使用的核心组件(按钮)。然后它们也应该受到影响,因此可能需要在整个注入器上“装饰装饰器”,而不仅仅是扩展它。
在 Angular 1.xthirdPartyDirective
中,提供了对组件 DDO 的完全访问权限的服务,因此可以对它们进行修饰、扩展、油炸等。Angular 2 中这种方法的直接对应物是什么?如果这违反了某些规则并使保修失效,那没关系。
如何扩展不导出其元数据的组件/指令?
如何修改现有组件的元数据?