我有一个小程序,有100多个页面。现在想分批把原生页面改成uni-app,所以想以混合开发的模式,分阶段替换原生页面。但是现在发现问题,原先在wx上挂载的自定义属性,打开uni-app分包页面以后,这个属性会丢失。这个问题虽然有点奇怪,但是毕竟是我们的业务代码,还好解决。但是部分三方sdk引入也是把数据放在wx上,三方sdk的数据同样会被删除掉。请问这种情况是否有打包配置可以移除。
就是上图的代码,导致挂载在wx上的自定义属性被删除掉了。
我有一个小程序,有100多个页面。现在想分批把原生页面改成uni-app,所以想以混合开发的模式,分阶段替换原生页面。但是现在发现问题,原先在wx上挂载的自定义属性,打开uni-app分包页面以后,这个属性会丢失。这个问题虽然有点奇怪,但是毕竟是我们的业务代码,还好解决。但是部分三方sdk引入也是把数据放在wx上,三方sdk的数据同样会被删除掉。请问这种情况是否有打包配置可以移除。
uni-app分包加载后wx对象自定义属性丢失是正常现象,因为uni-app在分包加载时会重新初始化运行环境,导致wx对象被重置。这不是配置问题,而是框架设计机制决定的。
解决方案建议:
避免依赖wx存储数据:改用更可靠的存储方式
uni.setStorageSync/uni.getStorageSync进行本地存储 第三方SDK处理:
混合开发最佳实践:
该行为无法通过打包配置移除,这是uni-app为保证分包独立性和稳定性设计的机制。建议重构数据存储方式,而非尝试保留wx对象状态。