本次打卡值得关注的内容有,算法题比较简单就不多说了,Review 主要内容为 React 中 class component 和 functional component 的区别,Tips 内容为 git modules 的使用,分享的内容为上一篇博客,通过使用 React 脚手架 Redit,总结的关于项目架构的一些理解。
Algorithm
本周继续完成 easy part,名为 Plus One,给定一个非负整数数组用来表示一个整数,返回加 1 后的数组表示,需要考虑的地方就是超过最大数字的情况。
var lengthOfLastWord = function(s) {
s = s.replace(/^\s+|\s+$/g, '');
if(!s || !s.length) {
return 0;
}
var ss = s.split(' ');
var lastWorld = ss[ss.length - 1];
return lastWorld.length;
};
Review
本周阅读的文章How Are Function Components Different from Classes?
主要内容为 React 中 class 组件和 function 组件的区别。主要内容为 class 组件带来的关于 this 的种种问题。
作者有个思想挺有意思的,就是在 class 的 render 函数中利用闭包解决 this 的问题,在 render 函数中声明函数,而不是 class 的方法。这样一来你就会发现,整个 render 函数像极了一个 functional component。
文章中还提到,在类组件中,对于如果我们要存储一些和渲染无关的数据,可以直接挂载在 this 上,那么在 function 中我们如何达到这个目的呢?
这时候就需要用到 useRef
这个 hook 了,作者表述如下:
A ref plays the same role as an instance field.
useRef 和 DOM refs 有点类似,但 useRef 是一个更通用的概念,它就是一个你可以放置一些东西的盒子。
Tip
git submodule 的使用
开发过程中,经常会有一些通用的部分希望抽取出来做成一个公共库来提供给别的工程来使用,这时候就可以用到 submodule
命令
- 添加
git submodule add 仓库地址 路径
,会在当前工程根路径下生成一个名为.gitmodules
的文件,其中记录了子模块的信息。添加完成以后,再将子模块所在的文件夹添加到工程中即可。 - 删除:
.gitmodules
文件中删除相应配置信息。然后,执行git rm –cached
命令将子模块所在的文件从 git 中删除。 - 下载:使用
git clone
下来的工程中带有submodule
时,初始的时候,submodule
的内容并不会自动下载下来的,需执行命令git submodule update --init --recursive