react-native - 如何提高 React Native 应用程序的性能

标签 react-native

适用于 Android 的 React Native 应用程序

我已经在应用类似的东西

删除控制台日志。

  1. 没有内联样式。

  2. 不在未安装的组件上调用 setState。

  3. 使用平面列表呈现数据。

但这还不够,还需要构建 Android 版本。不幸的是,存在巨大的性能差距。

最佳答案

有很多方法和步骤可以提高 react 原生应用程序的性能。

  1. 您应该使用 React.PureComponent (如果使用基于类的组件)来定义组件,而不是 React.Component。它对 props 和 state 进行浅层比较,并且仅在组件发生更改时重新渲染组件。

如果使用函数式组件,请将组件包装在 React.memo 中,它的作用与函数式组件中的 React.PureComponent 类似。对 FlatlistrenderItem 中使用的组件执行相同的操作。

  • 不改变数据( Prop 和状态),而是创建一个副本并对其进行编辑。更多详情here

  • 在从其他文件导入某些模块或任何内容时,请确保仅导入您需要的内容,而不是导入所有内容。

  • 错误的方式(除非你需要一切或者这是使用其他 api 的必要条件);

    import * as everything from 'path/to/some/file'
    

    正确的方法;

    import {firstthing, secondthing} from 'path/to/some/file'
    
  • 正如您提到的 Flatlist,您还应该使用 initialNumToRender 属性减少初始渲染上显示的项目数量,以加快响应速度。

  • 如果使用动画,请尝试通过在动画 View 上设置 useNativeDriver={true} 来使用 native 驱动程序(如果可能)。这将使动画顺利运行,并且它们不会被 js 线程阻塞。

  • 尝试减小应用程序的大小。如果您的应用中有不使用的内容,请将其删除。

  • 例如,如果您正在使用 expo,但您的应用并没有使用 expo 中的太多内容,例如 expo API 和其他功能,最好退出。

    您可能已经意识到,expo应用程序在创建时(当我们没有编写代码而只是完成设置过程时),应用程序的大小接近40-50 MB。

    还有很多其他的事情(我并不知道一切 🙂🙂)。您可以在网上找到很多有关此问题的详细信息。

    关于react-native - 如何提高 React Native 应用程序的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70921437/

    相关文章:

    ios - React native 人脸检测对我不起作用(iOS)

    react-native - 新手机中的 React Native 应用程序 "full screen"

    react-native - React Native 版本不匹配

    javascript - Textinput onpress Action 移动到下一节

    reactjs - 如何创建多个具有相同功能的 React Native 应用程序

    react-native - 无法运行项目

    android - FlatList 从列表底部上拉

    javascript - React Native 中的 Axios - 无法发布 Blob 或文件

    javascript - 'async' 修饰符不能在 typescript react 中使用

    javascript - 如何为商店中的 React Native App 编辑我的 Firebase 规则,以便在未经身份验证的情况下发送数据?