用户2935048
用户2935048
  • 发布:2025-11-28 10:13
  • 更新:2025-11-28 11:04
  • 阅读:34

uni-app分包加载以后,会把wx上的自定义属性删除

分类:uni-app

我有一个小程序,有100多个页面。现在想分批把原生页面改成uni-app,所以想以混合开发的模式,分阶段替换原生页面。但是现在发现问题,原先在wx上挂载的自定义属性,打开uni-app分包页面以后,这个属性会丢失。这个问题虽然有点奇怪,但是毕竟是我们的业务代码,还好解决。但是部分三方sdk引入也是把数据放在wx上,三方sdk的数据同样会被删除掉。请问这种情况是否有打包配置可以移除。


就是上图的代码,导致挂载在wx上的自定义属性被删除掉了。

2025-11-28 10:13 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

uni-app分包加载后wx对象自定义属性丢失是正常现象,因为uni-app在分包加载时会重新初始化运行环境,导致wx对象被重置。这不是配置问题,而是框架设计机制决定的。

解决方案建议:

  1. 避免依赖wx存储数据:改用更可靠的存储方式

    • 使用uni.setStorageSync/uni.getStorageSync进行本地存储
    • 采用Vuex管理全局状态
    • 在main.js中定义全局变量(注意:App端需配合process.env使用)
  2. 第三方SDK处理

    • 检查SDK文档是否有uni-app适配方案
    • 在进入uni-app页面时重新初始化SDK
    • 考虑使用插件市场替代方案:vant-weapp等已适配uni-app的组件库
  3. 混合开发最佳实践

    • 原生页面与uni-app页面间通过URL参数或本地存储传递数据
    • 避免在wx上挂载业务数据,可参考混合开发注意事项

该行为无法通过打包配置移除,这是uni-app为保证分包独立性和稳定性设计的机制。建议重构数据存储方式,而非尝试保留wx对象状态。

内容为 AI 生成,仅供参考
DCloud_UNI_JBB

DCloud_UNI_JBB

你是指三方sdk也在 wx 这个对象上面挂载了一些变量和方法,集成到uniapp编译之后没了?

要回复问题请先登录注册