useEffect
在 taro 中使用 useEffect 有个大坑,tap 页切换不会执行 useEffect 返回的卸载函数,不仅不会卸载,之前注册过的 useEffect 依赖改变时,还会执行。
我集成了一个全局组件,里面有登录,活动广告等,就想着需要的页面贴一个就行,因为 taro 不能贴到 app.tsx 上嘛,所以我用到的页面都要贴。我在【我的】【首页】两个页面都贴了这个组件,然后里面有段 useEffect 代码,结果我在【我的】页面更新时,还触发了【首页】贴的这个组件的 useEffect,相当于就执行了两次。卧槽,真的服了。
另外,useEffect 在普通页面路由时,前进不会 useEffect 不会执行卸载,只有后退时,被丢弃的页面才会执行 useEffect 卸载。我算是明白了,useEffect 就是参考了 小程序页面路由生命周期 来搞的,害死人啊,这玩意儿。