Questions tagged «ecmascript-6»

ECMAScript规范的2015版本现已成为标准(ECMAScript 2015)。仅在问题专门与ECMAScript 2015中提供的新功能或技术更改有关的情况下使用此标记。

4
何时使用基于ES6类的React组件和功能性ES6 React组件?
在花了一些时间学习React之后,我了解了创建组件的两个主要范例之间的区别。 我的问题是,什么时候应该使用哪个?为什么?一个人相对于另一个人的利益/取舍是什么? ES6课程: import React, { Component } from 'react'; export class MyComponent extends Component { render() { return ( <div></div> ); } } 功能性: const MyComponent = (props) => { return ( <div></div> ); } 我正在考虑什么时候只要该组件没有状态要操作就可以了,是吗? 我在猜测是否使用任何生命周期方法,最好是使用基于类的组件。

8
如何在ES2015中编写命名箭头功能?
我有一个函数要转换为ES6中的新箭头语法。它是一个命名函数: function sayHello(name) { console.log(name + ' says hello'); } 有没有办法在不使用var语句的情况下为其命名: var sayHello = (name) => { console.log(name + ' says hello'); } 显然,我只能在定义此功能后使用它。如下所示: sayHello = (name) => { console.log(name + ' says hello'); } ES6中是否有新方法可以做到这一点?


5
ES6导出/导入索引文件
我目前正在通过webpack / babel在React应用中使用ES6。我正在使用索引文件来收集模块的所有组件并导出它们。不幸的是,这看起来像这样: import Comp1_ from './Comp1.jsx'; import Comp2_ from './Comp2.jsx'; import Comp3_ from './Comp3.jsx'; export const Comp1 = Comp1_; export const Comp2 = Comp2_; export const Comp3 = Comp3_; 因此,我可以像这样从其他地方很好地导入它: import { Comp1, Comp2, Comp3 } from './components'; 显然,这不是一个很好的解决方案,所以我想知道是否还有其他方法。我似乎无法直接导出导入的组件。


4
Babel 6更改默认导出方式
以前,babel将添加这行module.exports = exports["default"]。它不再这样做。这意味着在我不能做之前: var foo = require('./foo'); // use foo 现在,我必须这样做: var foo = require('./foo').default; // use foo 没什么大不了的(我猜这就是应该一直以来的样子)。问题是我有很多代码取决于事情的工作方式(我可以将大多数代码转换为ES6导入,但不是全部)。任何人都可以给我有关如何使旧方法工作的提示,而不必经历我的项目并解决此问题的方法(甚至是一些有关如何编写codemod来做到这一点的说明也很巧妙)。 谢谢! 例: 输入: const foo = {} export default foo 使用Babel 5输出 "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var foo = {}; exports["default"] = foo; module.exports = exports["default"]; 使用Babel …

13
Nodejs5和babel中的“意外令牌导入”?
在js文件中,我使用import代替require import co from 'co'; 并尝试通过nodejs直接运行它,因为它说import是“运输功能”和支持,没有任何运行时标记(https://nodejs.org/en/docs/es6/),但是我遇到了一个错误 import co from 'co'; ^^^^^^ SyntaxError: Unexpected token import 然后我试图用通天塔 npm install -g babel-core npm install -g babel-cli npm install babel-core //install to babel locally, is it necessary? 并由 babel-node js.js 仍然有相同的错误,意外的令牌导入? 我如何摆脱它?

11
如何有条件导入ES6模块?
我需要做类似的事情: if (condition) { import something from 'something'; } // ... if (something) { something.doStuff(); } 上面的代码无法编译;它抛出SyntaxError: ... 'import' and 'export' may only appear at the top level。 我尝试使用此处System.import所示的方法,但是我不知道从哪里来。这是没有最终被接受的ES6提案吗?那篇文章中指向“编程API”的链接将我转至不推荐使用的docs页面。System

3
反应功能性无状态组件,PureComponent,Component;有什么区别,什么时候应该使用什么?
才知道,从阵营v15.3.0,我们有一个新的基类叫PureComponent与扩展PureRenderMixin内置。我了解的是,在幕后,它对内部的道具进行了浅浅的比较shouldComponentUpdate。 现在,我们有3种方法来定义React组件: 功能性无状态组件,不扩展任何类 扩展PureComponent类的组件 扩展Component类的常规组件 一段时间以前,我们曾经将无状态组件称为“纯组件”,甚至称为“哑组件”。似乎“纯”一词的整个定义现在已经在React中改变了。 尽管我了解这三者之间的基本区别,但是我仍然不确定何时选择什么。还有每种性能影响和权衡取舍是什么? 更新: 这些是我希望得到澄清的问题: 我应该选择将我的简单组件定义为功能性的(出于简单性考虑)还是扩展PureComponent类(出于性能的考虑)? 我所获得的性能提升是否是我失去的简单性的真正折衷呢? Component当我总是可以使用PureComponent以获得更好的性能时,是否需要扩展常规类?


4
如何使用箭头函数(公共类字段)作为类方法?
我是将ES6类与React结合使用的新手,以前我一直将我的方法绑定到当前对象(如第一个示例所示),但是ES6是否允许我使用箭头将类函数永久绑定到类实例?(在作为回调函数传递时很有用。)当我尝试使用CoffeeScript尝试使用它们时,会出现错误: class SomeClass extends React.Component { // Instead of this constructor(){ this.handleInputChange = this.handleInputChange.bind(this) } // Can I somehow do this? Am i just getting the syntax wrong? handleInputChange (val) => { console.log('selectionMade: ', val); } 这样,如果我要传递SomeClass.handleInputChange给,setTimeout它将被限制为类实例,而不是window对象。

4
正确使用const在JavaScript中定义函数
我想知道const在JavaScript中可以使用哪种类型的值(特别是函数)设置任何限制。这有效吗?当然可以,但是出于某种原因,它是否被视为不良做法? const doSomething = () => { ... } 是否应该在ES6中以这种方式定义所有功能?似乎并没有流行起来。 感谢您的任何评论!

19
如何滚动到元素?
我有一个聊天小部件,每次向上滚动时,它都会拉出一系列消息。我现在面临的问题是加载消息时滑块固定在顶部。我希望它专注于上一个数组中的最后一个索引元素。我发现可以通过传递索引来创建动态引用,但是我还需要知道使用哪种滚动功能来实现这一点 handleScrollToElement(event) { const tesNode = ReactDOM.findDOMNode(this.refs.test) if (some_logic){ //scroll to testNode } } render() { return ( <div> <div ref="test"></div> </div>) }

3
从常规ES6类方法调用静态方法
调用静态方法的标准方法是什么?我可以考虑使用constructor或使用类本身的名称,我不喜欢后者,因为它没有必要。是前一种推荐的方法,还是还有其他方法? 这是一个(人为的)示例: class SomeObject { constructor(n){ this.n = n; } static print(n){ console.log(n); } printN(){ this.constructor.print(this.n); } }

9
create-react-app Webpack配置和文件在哪里?
我使用该create-react-app软件包创建了一个ReactJS项目,该项目运行良好,但找不到Webpack文件和配置。 react-create-app如何与webpack一起使用?默认情况下,使用以下命令安装的webpack配置文件在哪里create-react-app?我在项目的文件夹中找不到配置文件。 我尚未创建替代配置文件。我可以与其他文章一起管理配置设置,但是我想找到常规的配置文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.