Better

Ethan的博客,欢迎访问交流

ARTS 打卡第十三周

本次打卡值得关注的内容有,算法题比较简单就不多说了,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

Share

本周分享:了解到一个 React 脚手架 Rekit



留言