Basic
- 变量要有意义,能用 index 不用 i
- log 要加前缀
[文件名::函数名]
便于调试 - boolean 变量名不要加 is
- 不要直接用数字(Magic number),定义一个常量
- 命名风格保持相同,不能一会“messageId”,一会“msgString”
- 改变 if 以减少缩进
if (xxx != null){...}
改为
if (xxx == null){return;}
...
- 函数越短越好,越简单越好
- 显而易见的注释就不要加了,需要加的有:难以顾名思义的外部库的引用、数值与文档不同要说明原因、文档没有的明确说明的内容、method 运行时间可能会很长的警告、一些 risk 的提醒、防止不必要的调用的提醒
- 关于TODO:包含未来要做的和现在做起来有困难的
React
- 组件有扩展性,如一个 list 组件要考虑数据为 0 个/数据内容异常的情况
- state 变化会导致页面刷新,慎用,如果不是这样的变量用普通变量或 useRef 代替
- dummy 数据放在外面引入进去,不要放在 js 里
- loading 的时候,可以使用 if/else,避免加载数据
- 每个组件都要用
memo
括起来,因为父节点渲染会导致子节点渲染,用 memo 提升性能 - Object 的浅比较比较的是函数/对象的地址
- 组件写好后用 useEffect()进行 log,以观察 mount、update 行为
- 刷新时机一致的 state 可以合并
Redux
- useSelector 只需关注部分值的情况,则不需要 select 一整个对象
- 不要随便 request data,会使 redux 标志位变化,引起整个刷新