javascript - React 中的构造方法

标签 javascript reactjs ecmascript-6

我已阅读 React Docs关于构造函数方法及其在设置状态和绑定(bind)函数方面的用途,但在大多数情况下真的有必要吗?

做和做有什么区别

export default class MyClass extends Component {
    constructor(props) {
        super(props);
        this.state = {
            foo: 'bar',
        };
        this.member = 'member';
        this.someFunction = this.anotherFunction(num);
    }
    anotherFunction = (num) => num * 2;
    render() {
        // render jsx here
    }
}

然后简单地将所有这些放在构造函数之外

export default class MyClass extends Component {
    state = {
        foo: 'bar',
    };
    member = 'member';
    someFunction = this.anotherFunction(num);
    anotherFunction = (num) => num * 2;
    render() {
        // render jsx here
    }
}

是否有一个选项优于另一个选项?是否有任何我应该了解的性能问题?这一直困扰着我,我似乎找不到具体的答案。

最佳答案

你的两个例子在功能上是相同的,但关键是在类方法之外分配东西,但在类的主体内部,就像除了 render 之外的所有东西constructor,不是标准的 ES6,只能通过 Babel 工作。该语法是建议的 class property syntax .

关于javascript - React 中的构造方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43815236/

相关文章:

javascript - 关于 ES6 中的 Promise 链

javascript - knockout 行访问

javascript - 克隆节点上的 DOM 操作

javascript - 单击可滚动 div 内的视频按钮,将其向右移动

javascript - 如何从 Next.js 中的 getStaticPaths 中的主机 URL 获取数据?

javascript - react 。使用粗箭头函数声明组件(ES6语法规范)

javascript - 从另一个商店 mobx 调用商店

javascript - 为什么我的 React 组件无法获取我需要的库?

javascript - 如何在同一行/水平对齐 ReactJS 的 <button/> 和 &lt;input/>?

javascript - `render` 方法是仅在 `state` 更改时调用还是在 `props` 更改时调用?