我正在做一个React原生项目,我正在为React组件使用ES6类.

由于通过ES6类定义的React组件没有自动绑定,React team recommends将ES7属性初始值设定项与箭头函数结合起来,以创建相同的效果.

为了保持一致并防止与此绑定混淆,我对所有组件方法使用ES7属性初始值设定项:

class Foo extends React.Component {
  constructor(props) {
    super(props);
    ...
  }

  componentDidMount = () => {
      ...
  };

  bar = () => {
    ...
  };

  render = () => {
    ...
  };
}

我在想--有没有什么严重的性能警告需要注意?我特别想知道render()方法.

总的来说,这似乎是一个好方法吗?

推荐答案

最大的警告是,这一特定功能尚未成为标准,也尚未达成一致.(不会是ES7,因为没有ES7.可能是ES2017,但仍不清楚.)

分配几个新的长生命周期 对象并将它们存储在类中也会带来成本.

我不推荐这个.只是为了回电.

React-native相关问答推荐

try 使用JWT-DECODE解码令牌时出错

在AWS-Amplify js v6中检索原始的accesToken和idToken

如何判断 Detox 正在运行测试?

React Native 将 base64 图像保存到相册

如何运行 React-Native 示例?

如何在 mac 上卸载 react-native-cli?

fetch API 总是返回 {"_U": 0, "_V": 0, "_W": null, "_X": null}

如何将 View 定位在 ScrollView 的底部?

Android 构建错误AndroidManifest.xml requires a placeholder substitution

React Native TextInput blur TouchableHighlight 按下事件

如何在不使用 JSX 的情况下在 React Native 中制作组件?

加载远程图像失败后加载本map像

如何在 React Native Android 中设置按钮的高度

如何在 React Native 中优化图像

在 webview 中检测touch 是 Apple Pencil 还是手指(react-native)

INSTALL_FAILED_UPDATE_INCOMPATIBLE:包签名与之前安装的版本不匹配,忽略

在 ReactNative 中单击按钮时如何获取 TextInput 中的值

React Native,更改 React Navigation 标题样式

React Native:如何动态更改

React Native 项目,有时使用 expo start 获得连接 ECONNREFUSED 127.0.0.1:19001