记录一次Mac本地搭建过程
React Native热更新与拆包iOS版
对于React Native的热更新,之前一直用code-push,这个API比较丰富,统计功能也比较全。但服务器在国外,对于国内来说网络不占优势。
在之前工作中,发现安卓还有热更新失败的情况。
对于拆包需求来说,现在只能说有多种方案,携程的方案比较强大,但他们的CRN并不开源。调研过一段时间,目前比较方便的还是通过Google的diff工具进行拆包。
实施方案
React Native打包之后会生成bundle文件,拆分方案是基于本次打包与前一次打包之间的差异完成的。即前一次打出来的bundle(lastbundle)作为base,本次打包出来的bundle(newbundle)与lastbundle之间的差异作为diffbundle。这样我们可以把一个最新的完整的bundle拆成两部分(如图):
React-Native(RN)使用iOS原生组件
Personal note
Posted on
Edited on
Symbols count in article: 451 Reading time ≈ 1 mins.
Symbols count in article: 451 Reading time ≈ 1 mins.
Here's something encrypted, password is required to continue reading.
Sublime Text 3.1 破解方案
Here's something encrypted, password is required to continue reading.
Python小工具集合
Python内建模块struct解析数据
js随机数概率控制
js随机数概率控制
调用随机函数生成范围之间的随机数,如果生成的随机数在某个整数的取值范围内,那么就输出当前整数。
工具类代码
1 | class GLRandom { |
测试代码
1 | // 生成概率随机数 |
前端技术整理——Promise
Promise
应用题:(模仿promise.all())定一个函数,参数为一个需要异步操作的URL数组,需要返回一个Promise格式的结果——假如所有异步操作成功,则返回所有成功后结果集合;假如其中有异步操作失败,则返回失败的信息
1 | testPromise (requests = [], results = []) { |
前端技术整理——Immutable
Immutable优缺点
- 传递数据时,Immutable Data可以提升组件渲染性能
- Imutable Data是对可变对象和不可变对象的一个折中
- 可变对象——是指多个变量引用一个对象,这导致对象的time和value耦合,对象一旦改变无法重塑
- 不可变对象——是指每次用对一个对象就进行深复制,这导致内存浪费
- Immutable——基于持久化数据结构,也就是使用就数据创建新数据时,旧数据依旧保存,而且为了避免深度复制,Immutable Data使用结果共享,也就是说如果对象树中的一个节点变化,只修改这个节点和受他影响的父节点,其他节点依旧共享。Immutable Data优点体现在降低了可变数据带来的时间和值的耦合,节省了内存,可以实现数据的时间旅行,也就是说数据可以重塑。
Immutable
- 普通的mutable对象深拷贝会将一整份数据都复制一遍,而Immutable对象在修改数据时并不会复制一整份数据,而是将变化的节点与未变化的节点的父子关系转移到一个新节点商,类似于链表的结构。从“复制”的角度来看,做到了最小化的复制,未变化的部分是共享的,Mutable在复制的时候是“全量”,而Immutable复制的是“增量”,对于内存空间的使用率