本次打卡值得关注的内容有,算法题为爬楼梯问题,是一个动态规划问题,挺有意思的,Review 主要内容为最近学习 Hooks 时看到的关于 React 中一些实践,本周 Tips 内容为相对多一点,主要有 webpack 中 resolve 下 modules 的使用,在 React 中使用 BMap,以及 antd 中 table 组件一个 warning 的修复,分享的内容为 React 中 redux、react-redux 深入理解以及 React 项目可选的高阶性能优化项。
Algorithm
本周继续完成 easy part,名为爬楼梯,这个问题其实挺有意思的,一开始想了很多,还是看了评论去才醒悟,其实是一个斐波拉契数列的问题,我是被这句话点醒的,动态规划:最优解可以从其子问题的最优解来有效地构建,具体代码如下
var climbStairs = function(n) {
const dp = [];
dp[1] = 1;
dp[2] = 2;
for(let i = 3; i <= n; i++) {
dp[i] = dp[i - 1] + dp[i - 2];
}
return dp[n];
};
Review
本周阅读的文章来自我学习 Hook 时, Google 找到的一篇文件,主要内容 React 组件、hook 和性能方面需要注意的东西,由于内容比较多,因此单独启一篇博客,算是一篇译文。传送门:Components, Hooks, and Performance
Tip
由于之前只了解到 webpack 中可以通过 alias 设置别名来达到使用绝对路径 import 的目的,最近在写 React 时,发现 src
下的目录都是可以直接导入的,但是我查看配置,却发现没有配置 alias,但是发现配置了 resolve.modules,用于配置 webpack 去哪些目录寻找第三方模块的,默认是去 node_modules
下去寻找。
最近的工作需要在 React 中使用百度地图,理想的状况下当然是使用 import 语法使用 BMap,于是发现需要配置 webpack,具体如下
externals:{
'BMap':'BMap',
}
这样原则上是可以使用 import 语法了,但由于项目使用了 TypeScript,导致 ts 检查无法通过,这种情况下需要导入 xxx.d.ts
文件,无奈并没有找到 BMap 的描述文件,因此只能在代码中通过 declare 声明
declare const BMap: any;
最后记录一个 antd 使用上的小问题,我的需求中,columns
是动态生成的,key 属性使用了数值型,控制台却一直提示 key 重复,但我打印数据却没有发现重复的,无奈之下尝试将 key 加上一个任意的字符串,使之变成 String 型,却没有报错提示了,这一点表示很奇怪。