可能不需要 redux 了, 但不该用 hook 去取代它
前言
最近再补有关 react hook 的文档,在看完基础 hook 的章节时 (useState, useEffect, useContext),可以大致明白 hook 的用途了,简单的来说,hook 可以让函数组件也能拥有自己的 state
,并且可以使用 componentDidMount
, componentDidUpdate
, shouldComponentUpdate
等 class 组件里面才有的特性,后面看到额外 hook 的章节时,里面有一个名叫 useReducer
的 api,这让我对 hook 的用途又打上了一个新的问好,看完了 useReducer 的相关介绍以及用法后,就在想,这个叫 useReducer 的 api 会不会是用来取代 redux
的呢?于是乎就在网上查阅了一下相关资料,最后从网上得出的结论就是,hook 是可以用来取代 redux 的,但是不能用 hook 去 完全取代
redux, 因为他们两者的出发点不同,解决问题的场景也有所不同。为了验证 hook 到底能不能完全取代 redux,我也做了相关的尝试,最终得出结论,如果想使用 hook 来完全取代 redux,还是有一些特定的需求是无法满足的,在这里记录一下。
使用 husky + lint-staged 防止💩的流入
写在前面
husky
husky 是一个用于给 git
相关操作添加钩子的工具,通过 husky 我们可以非常简单的给 git 相关操作添加钩子,最终我们会使用 husky 来给 git commit 操作挂上钩子, 来预防一些不良的 commit。
lint-staged
先看看看 lint-staged 的官方介绍,个人觉得还是挺有意思的
🚫💩 lint-staged
Run linters against staged git files and don’t let 💩 slip into your code base!
大概意思是,在你将提交暂存区的文件到仓库之前,可以通过 lint-staged 对暂存区的文件进行检查,检查通过才能提交到仓库,以防止💩的流入。
react navigation 手势操作 + 自定义转场动画
最终达到的一个效果
snack 地址: https://snack.expo.io/@midoushitongtong/react-navigation-gesture-transition
可以通过 expo,在你的设备上直接运行它。
electron + react + typescript 环境搭建
前言
最近在学习 electron,技术选型大致为 electron + typescript + react + redux + react-router,为了方便,想寻找现成的脚手架,但发现,现有的脚手架都不太满足我的需求。
到目前为止 github 上比较流行的相关脚手架
- react-boilerplate start 数量较多,但不支持 typescript
- react-typescript-boilerplate 支持 typescript,但 1 年前就已停止维护
综上所述,打算自己搭建一个满意的开发环境,顺便提高一下自己的动手能力,大致的思路如下
手动搭建php环境(win系统)
记录一下手动搭建 apache + php 环境的大致流程(闲得慌系列)
下载 windows 版 apache 启动器
- 下载 windows 版 apache 启动器传送门
- 选择
64
位或者32
位的启动器下载即可