销售订单由 RN 向 Web 分阶段灰度迁移
需求背景
RN 开发效率低于 Web,在技术栈迁移过程中兼容老业务并做 UI 调整
灰度流程
灰度环境部署(灰度发布平台)
- 将灰度项目部署至
/projects-grey目录下 - 灰度期间所有访问请求将自动重定向至灰度环境
- 将灰度项目部署至
灰度规则配置(灰度发布平台)
- 支持多维度的灰度规则设置:用户,店铺,集团等
- 可配置灰度截止日期
- 支持按页面/项目粒度进行灰度配置
环境标识
- 通过引入灰度标识插件脚本(在 index.html 中加载)
- 脚本功能:
- 检测 location.pathname 是否匹配灰度项目路径
- 校验当前用户是否在白名单内
- 在灰度环境页面显示可视化标识点(用于环境确认)
订单看板版本控制方案
- 通过用户 APP 版本是否升级判断跳转页面
- 新版本:跳转至 H5 订单列表页,API 根据是否灰度差异化返回订单列表数据
- 旧版本:保持跳转至 RN 旧页面
- 通过用户 APP 版本是否升级判断跳转页面
迁移过程中的一些问题
- 采用分阶段迁移策略,因此新 H5 页面后续点击路径依旧会回到 RN 其它页面
- RN 页面需要根据参数判断上一个页面的来源是否为 H5,差异化处理某些逻辑
- 有些参数 H5 无法跨栈向 RN 页面组件传递(如function),RN 页面采用创建上一级 RN 页面组件实例,获取对应方法