问题:
taro 自建了一套路由机制,通过同级增加div,隐藏其他div的方式来push,back路由页面,
但是如果切换过快时,会出现页面内容和路由不匹配的情况
解决:
在node_modules/@tarojs/router/router.esm.js
里,路由的render有个节流,节流时间是500ms。
所以当页面切换速度在500ms内时,会造成路由和页面不匹配的情况
将该时间从500ms调节到50ms,即可解决
image.png
持续集成:
上面的解决方案都是修改node_modules的源码,但是持续集成肯定是重新安装依赖的,本地改动无法合入node_modules里
所以需要一个patch-package
的包
- 输入
yarn add patch-package
,安装patch-package这个包 - 进入node_modules里修改那个文件
node_modules/@tarojs/router/router.esm.js
- 修改完后输入指令
npx patch-package @tarojs/router
,来告诉工具改动的是哪个包(包目录下必须有package.json文件) - 然后就会自动生成一个
patches
文件夹,记录对应的diff,这个diff内容如图所示
image.png - 这个diff自动记录更改的路径,对应的行数,更改的内容,有点类似git diff
- 然后在package.json中的script中加入
"postinstall": "patch-package"
,表示依赖安装完执行这个merge - 删除node_modules 重新yarn,安装完成后发现node_modules里对应的文件已更改
网友评论