ReactNative进阶(四十二):面试必备:2024 ReactNative 经典面试题总结(含答案(2)

学习分享,共勉

题外话,毕竟我工作多年,深知技术改革和创新的方向,Flutter作为跨平台开发技术、Flutter以其美观、快速、高效、开放等优势迅速俘获人心

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

详参博文:

三、Bloc 相关技术面

详参博文:

四、IoC 框架 InversifyJS

详参博文:

五、异步编程解决方案

详参博文:

六、React Native 相对于原生 IOS、Android 有哪些优、劣势?

6.1 优势
  • 性能方面媲美原生App。
  • 绝大部分代码同时适用IOS/Android,一套代码两套系统适用。
  • 使用Javascript编码,上手容易。
  • 组件式开发,易于管理维护,代码复用率高。
  • 代码更改后会自动刷新,节省等待时间。
  • 支持热更新,更新无需重新安装App
6.2 劣势
  • RN组件库不全,第三方组件库也不全,当遇到某些特殊功能,需要花费大量时间、精力完成;性能方面也无法媲美原生,还是会有一些损耗,特别是大数据交换时;
  • 系统适配方面, IOS版本略好,android发展较慢;
  • 编程方面, iosandroid代码并非通用,有可能需要维护两套代码或者在代码中做一些条件判断或编译;
  • 开发人员还是需要会原生开发,不然自定义组件无法编码;
  • 开发复杂应用必须精通原生开发,开发效率并不比原生开发的熟手快。很多问题(包括兼容性问题解决)任然需要原生开发。
  • 升级RN版本或需要大动干戈,尤其向下兼容不好;

七、React Native 组件生命周期

详参博文:

八、setState调用后发生了什么?

  1. 将传入的参数对象与当前的状态合并,然后触发调和过程。
  2. 在调和过程中react会根据新的状态以相对高效的方式构建react元素树。
  3. react会对新旧元素树进行diff算法计算出差异,然后根据差异进行最小化渲染。

详参博文:

九、对 Immutable 的理解

Javascript 中的对象一般是可变的(Mutable)。 由于使用了引用赋值,新对象简单引用原始对象后,新旧对象值的修改都将影响到彼此。虽然这样做可以节省内存,但应用变得复杂后,这就造成了非常大的隐患,Mutable带来的优点变得得不偿失。为了解决这个问题,一般的做法是使用深浅拷贝来避免修改,但这样又造成了CPU和内存的浪费。而Immutable可以很好地解决这些问题。

目前流行的Immutable库有两个:

  • immutable.js
  • seamless-immutable

Imutable优点:

  1. 降低了Mutable带来的复杂度;
  2. 节省内存;
  3. Undo/Redo, Copy/Paste, 甚至时间旅行这些功能做起来都是小菜一碟;
  4. 并发安全;
  5. 拥抱函数式编程;

Immutable缺点:

  1. 需要学习新的API;
  2. 增加了资源文件的大小;
  3. 容易和原生对象混淆;

什么是Immutable Data?
Immutable Data是一旦被创建,就不能被更改的数据。对Immutable 对象的任何修改或添加删除操作都会返回一个新的Immutable 对象。Immutable 实现原理是持久化数据结构(Persistent Data Structure),也就是使用旧数据创建新数据的同时要保证旧数据的可用且不变。同时又为了避免深拷贝把所有节点都复制一遍带来的性能损耗,Immutable 使用了Structure Sharing(结构共享),即如果对象树中一个节点发生变化,只修改这个节点和受它影响的父节点,其他节点则进行共享。

详参博文:

十、InteractionManager

InteractionManager可以将一些耗时较长的工作安排到所有互动或动画后执行,这样可以保证JS动画的流畅性。如:Navigator转场动画。

延迟计划函数比较:

  • requestAnimationFrame(): 用来执行在一段时间内控制视图动画的代码。

总结

根据路线图上的重点去进行有针对性的学习,在学习过程中,学会写笔记,做总结。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

这里分享一些前端学习笔记:

  • html5 / css3 学习笔记

  • JavaScript 学习笔记

  • Vue 学习笔记

  • Vue 学习笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值