跨平台 Hooks npm 包的接口设计

一、Overview Taro 是用 React 的方式来写小程序,拥有与 React 一致的 api,因此可通过相同的实现来同时满足多端的需求。现在正在构建一个可跨端使用的 Hooks 包,关键的问题在于如何处理包的依赖。 当在小程序中使用时,实际上是依赖了  @tarojs/taro,而在 web 中使用时需要依赖 React: // cross-use(Hooks 包的包名) function useMyHook() { return useState(); } // 业务方使用时 import { useMyHook

基于 React Hooks 的小型状态管理

本文主要介绍一种基于 React Hooks 的状态共享方案,介绍其实现,并总结一下使用感受,目的是在状态管理方面提供多一种选择方式。 实现基于 React Hooks 的状态共享 React 组件间的状态共享,是一个老生常谈的问题,也有很多解决方案,例如 Redux、MobX 等。这些方案很专业,也经历了时间的考验,但私以为他们不太适合一些不算复杂的项目,反而会引入一些额外的复杂度。 实际上很多时候,我不想定义 mutation 和 action、我不想套一层 context,更不想写 connect 和

Git Subtree 的使用

git 的 subtree 是一种复用源代码的方式,可以让多个仓库引用某个仓库的代码,也可以将仓库中的某个目录拆分成一个子仓库以供其他仓库使用。 相较于 git 的 submodule,目前社区中多更推崇 subtree,自己在使用了一段时间后总体也是认为 subtree 会更好用一些。 但同时,两者都有各自的一些问题,而 subtree 的问题目前有其他方式规避,整体用起来比较流畅,所以最终选择了 subtree。 实际上 subtree 命令需要在某个版本的 git 之后才被支持,但目前 git 的常用版本是完全足够的,所以也没去深究过。 为什么?

前端

node_modules 与包管理器

身为前端开发的我们应该每天都会接触 node_modules,但对于 node_modules 的认知是否充分?也许因为包管理器的存在,平时只需要一个 install 命令,可能就不会去过多关注 node_mdouels 本身。 简单而言,node_modules 是为 Node 设计存放依赖的文件夹。一直到今天,node_modules 能满足很多场景的使用,但同时也存在不少缺陷。 从一个常见的版本冲突场景开始切入主题,查看以下依赖关系: 当出现这种情况时,node_modules 下的文件结构是如何组织的? 如果