按需加载: 导出模块使用属性getter动态require

使用Import语句导入模块,会自动执行所加载的模块。如果你有一个公共组件供业务方使用,例如:common.js

import A from './A';
import B from './B';
import C from './C';
export {
A,
B,
C
}

业务方想使用common.js中A模块,

import {A} from './common.js';

此时,虽然只想引用A模块,但实际B,C模块代码也被执行了。

注意:

如果模块本身使用ES5导出方式,例如module.exports = A,导出方式采用require('./A')引用。模块采用ES6导出方式,例如export default class B {} ,导出方式采用require('./B').default引用

假如A, B, C 都是es6 写法,上面可以优化为

module.exports = {
get A() {return(require('./A').default);},
get B() {return(require('./B').default);},
get C() {return(require('./C').default);},
};

业务方使用不变

懒加载

一般入口文件,会引入所有页面文件,但是我们首次打开APP的时候,只是需要其中一个即可,这样就会造成首页打开速度会受到影响

这样我们就需要使用懒加载,使得真正使用的时候,才被引入

使用ListView/FlatList 代替 ScrollView

这个是老生常谈的,长列表要使用List, 不能直接map

使用PureComponent代替 Component

PureComponent 组件会自己判断旧的props 、 state 和新的是否相同,相同的话,就不会再重新渲染(注意:这里是的比较是浅比较), 相当于实现了 shouldUpdateComponent;

有时候需要自己实现 shouldUpdateComponent,进行深比较props 、 state, 减少渲染次数,也要考虑业务以免更新不了。

ScrollView中内容过多, 根据偏移量设置渲染内容;

页面要渲染A,B,C,D,E 其中 D, E都在首屏外,可以假如滚动 100偏移,再开始渲染D, E, 这样做的好处就是减少刚进来时渲染的内存消耗,提升渲染速度;

RN 性能优化的更多相关文章

  1. RN性能优化(重新探索react吧)

    最近做RN遇到了一些性能瓶颈,逼着自己不得不做一些优化 已经做过,或者尝试过得优化方案: 1.点击效果防止重复点击. 2.左右两边分别用两个异步栈进行更新,这样能让右边的缓慢不影响左边的更新. 3.I ...

  2. 【腾讯Bugly干货分享】跨平台 ListView 性能优化

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/FbiSLPxFdGqJ00WgpJ94yw 导语 精 ...

  3. MIS性能优化常见问题与方案(辅助项目组性能优化的总结贴)

    最近帮忙公司的几个项目组进行了不同方面的性能优化,发现几个项目都出现了一些共性的问题.这里写一篇文章,总结一下这几类问题,以及其对应的解决方案.方便其它项目组参考.   常见问题一:打开页面非常慢,有 ...

  4. 数据库访问性能优化 Oracle

    特别说明: 1.  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2.  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也 ...

  5. React-Native性能优化点

    shouldComponentUpdate 确保组件在渲染之后不需要再更新的,即静态组件,尽量在其中增加shouldComponentUpdate方法,防止二次消耗所产生的性能消耗 shouldCom ...

  6. PLSQL_性能优化系列01_Oracle Index索引

    2014-06-01 Created By BaoXinjian

  7. (转)Db2 数据库性能优化中,十个共性问题及难点的处理经验

    (转)https://mp.weixin.qq.com/s?__biz=MjM5NTk0MTM1Mw==&mid=2650629396&idx=1&sn=3ec17927b3d ...

  8. PLSQL_性能优化索引Index介绍(概念)

    2014-06-01 BaoXinjian

  9. Oracle学习总结(8)—— 面向程序员的数据库访问性能优化法则

    特别说明: 1.  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2.  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也 ...

随机推荐

  1. David与Vincent的博弈游戏[树型DP]

    \(\mathcal{Description}\) \(\mathcal{Solution}\) 根据题意,我们知道 根节点深度为1,深度为 奇数 的节点由\(David\)移动,我们称为\(D\)点 ...

  2. Android 设置ImageView全屏

    Android 设置ImageView全屏代码如下: <ImageView android:id="@+id/iv_image" android:scaleType=&quo ...

  3. C#4.0新增功能04 嵌入的互操作类型

    连载目录    [已更新最新开发文章,点击查看详细] 从 .NET Framework 4 开始,公共语言运行时支持将 COM 类型的类型信息直接嵌入到托管程序集中,而不要求托管程序集从互操作程序集中 ...

  4. 《VR入门系列教程》之9---谷歌纸盒

    谷歌纸盒---基于智能手机的廉价VR眼镜     如果用汽车来做类比,Oculus Rift和GearVR就是特斯拉和兰博基尼,它们物美但是价不廉.要是主机性能不好,那么几百美元的Oculus眼镜就是 ...

  5. 【原创】这一次,Chrome表现和IE11一样令人失望,围观群众有:Edge,Firefox

    前言 俗话说,常在河边走哪能不湿鞋,天天和浏览器打交道,发现浏览器竟然也隐藏BUG也不是新鲜事了.可以看下我之前的文章: [原创]分享IE7一个神奇的BUG(不是封闭标签的问题,的确是IE7的BUG) ...

  6. mysql查询表所有列名,并用逗号分隔

    SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ",") FROM information_schema.COLUMNS WHERE TABLE ...

  7. Java实现常见的排序算法

    一.排序算法 常见的排序算法主要分为下面几类: 选择排序 堆排序 冒泡排序 快速排序 插入排序 希尔排序 归并排序 桶式排序 基数排序 本文主要介绍选择排序.堆排序.冒泡排序.快速排序和归并排序的原理 ...

  8. mysql中的SQL语句执行的顺序

    1. from2. on3. join4. where5. group by6. with7. having8. select9. distinct10. order by11. limit 例: s ...

  9. spring @Required注解

    以下内容引用自http://wiki.jikexueyuan.com/project/spring/annotation-based-configuration/spring-required-ann ...

  10. codeforces 371A K-Periodic Array

    很简单,就是找第i位.i+k位.i+2*k位...........i+m*k位有多少个数字,计算出每个数出现的次数,找到出现最多的数,那么K-Periodic的第K位数肯定是这个了.这样的话需要替换的 ...