按需加载: 导出模块使用属性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. C语言调用VIX_API开关虚拟机

    #include <stdio.h> #include <stdlib.h> #include "vix.h" #define USE_WORKSTATIO ...

  2. C#4.0新增功能01 动态绑定 (dynamic 类型)

    连载目录    [已更新最新开发文章,点击查看详细] C# 4 引入了一个新类型 dynamic. 该类型是一种静态类型,但类型为 dynamic 的对象会跳过静态类型检查. 大多数情况下,该对象就像 ...

  3. Flink实战(八) - Streaming Connectors 编程

    1 概览 1.1 预定义的源和接收器 Flink内置了一些基本数据源和接收器,并且始终可用.该预定义的数据源包括文件,目录和插socket,并从集合和迭代器摄取数据.该预定义的数据接收器支持写入文件和 ...

  4. 快速清理maven仓库中下载错误的文件

    有时候使用pom文件下载依赖文件的时候突然网络异常,可能会出现依赖文件出现破损,导致怎么都不能使用,也没有重新下载. 之前解决办法是找到出现破损的文件并删除,让其重新下载,但是这样效率很低,也很难找到 ...

  5. dz6.0的一个sql注入漏洞

    今天开始着手分析第一个漏洞,找了一上午靶机,发现一个含有成人内容的违法网站是用dz6.0搭的,今天就看看dz这个版本的洞了 问题函数位置:my.php第623行 if(is_array($descri ...

  6. Java动态,安全追踪工具

    Java动态,安全追踪工具 在我们日常的开发中,总是难以避免的要解决线上的问题.如果线上的问题我们在本地调试的时候无论调试多少次发现明明本地调用了这个方法呀,怎么线上就是没调呢?还有就是出了问题的时候 ...

  7. 利用模板生成html页面(NVelocity)

    公司的网站需要有些新闻,每次的新闻格式都是一样的,而不想每次都查询操作,所以想把这些新闻的页面保存成静态的html,之后搜索了下就找到了这个模板引擎,当然其他的模板引擎可以的,例如:Razor,自己写 ...

  8. DesignPattern系列__10单例模式

    单例模式介绍 单例模式,是为了确保在整个软件体统中,某个类对象只有一个实例,并且该类通常会提供一个对外获取该实例的public方法(静态方法). 比如日志.数据库连接池等对象,通常需要且只需要一个实例 ...

  9. 【Python】狂蟒来袭 | 使用Anaconda搭建Python开发环境

    这段时间转了一个小圈圈,发现又回来了,瞎忙.想要学习数据挖掘的小伙伴一定得对机器学习有所了解吧,我之前看过几页周志华老师的西瓜书,但终没能坚持下来. 人生处处是起点,什么时候都不晚.记此笔记以分享与督 ...

  10. 使用Jasypt对SpringBoot配置文件加密

    # **前言** 在日前安全形势越来越严重的情况下,让我意识到在项目中存在一个我们经常忽略的漏洞,那就是我们的项目的配置文件中配置信息的安全,尤其是数据库连接的用户名和密码的安全.所以这里我们就需要对 ...