
获得徽章 0
- 从初二到今天,基本算是经历了十年的独立开发了,开发过数app和小程序,PC端软件等。今年正式毕业,明天入职人生第一份正式工作了 ~ 开源最近三个月写的一个单词对战微信小程序的代码,云开发,目前已经有接近1w的用户量了 ~ 线上可直接体验,项目包含完整源码和sketch设计稿文件,为纪念第一份前端工作
开源地址:github.com
明天正式入职了,掘友们有啥想对新人说的吗 ~ 私信必回 ~ 评论必看 ~展开65155 - 目前对类组件和函数组件的认识:
1. 在 react 的每一次更新时 会从root 递归调用 classComponent 实例的 render 方法、调用 functionComponent,都是为了获得虚拟dom节点;
2. 进入hooks版本,有状态的函数组件,可以更粒度抽离逻辑(Umi Hooks),但带来了问题:类组件回调函数在类的原型上,天生缓存,但是函数组件回调在函数体内部声明,每次页面更新都会重新生成,所以需要useCallback去缓存回调以节制性能,并且尽量把用到的引用类型数据声明在函数外;
3. 用类组件,内存中会一直有个实例,供你调render方法、缓存状态;用函数组件,它本身就相当于类组件的render,是一个全局的函数;
4. 如果类组件不复用,那么声明了一个类,就只有一个实例(人类只有一个人),是不是很奇怪;
5. 函数组件用到的常量,引用类型(如columns)放到函数体外,保证每次render复用,节省性能开销;简单类型的常量,放在函数体外是全局变量,占用栈内存,由v8垃圾清理机制清理;放在函数体内是局部变量,也是占用栈内存,但是函数组件执行完就被销毁(会不会有闭包),比全局变量的生命周期短,不会一直占用内存,但是每次都要重新声明;展开评论6