[email protected]版本升级指南:组合式API与兼容性优化

Mpx@2.8版本升级指南:组合式API与兼容性优化

版本升级概述

Mpx@2.8版本是一个重要的功能迭代版本,主要围绕组合式API支持进行了一系列优化和改进。相比于2.7版本对编译构建系统的重大重构,2.8版本更注重运行时能力的增强和开发体验的优化。

本指南将详细介绍从2.7升级到2.8版本的关键步骤和注意事项,帮助开发者顺利完成项目升级。

依赖升级指南

核心依赖更新

首先需要更新项目中的核心依赖版本至2.8.0系列:

{
  "dependencies": {
    "@mpxjs/api-proxy": "^2.8.0",
    "@mpxjs/core": "^2.8.0",
    "@mpxjs/store": "^2.8.0",
    "@mpxjs/pinia": "^2.8.0",
    "@mpxjs/utils": "^2.8.0",
    "@mpxjs/fetch": "^2.8.0"
  }
}

Web输出专用依赖

如果你的项目需要输出Web版本,还需要添加以下依赖:

{
  "dependencies": {
    "vue": "^2.7.10",
    "vue-demi": "^0.13.11",
    "vue-i18n": "^8.27.2",
    "vue-i18n-bridge": "^9.2.2"
  }
}

开发依赖更新

开发工具链也需要同步更新:

{
  "devDependencies": {
    "@mpxjs/webpack-plugin": "^2.8.0",
    "@mpxjs/size-report": "^2.8.0",
    "@mpxjs/babel-plugin-inject-page-events": "^2.8.0"
  }
}

编译配置调整

Babel插件配置

为了支持组合式API中的页面事件处理,需要在Babel配置中添加专用插件:

{
  "plugins": [
    "@mpxjs/babel-plugin-inject-page-events"
  ]
}

这个插件会自动处理组合式API中定义的页面生命周期事件,确保它们能够正确触发。

运行时变更详解

生命周期调整

  1. pageShow/pageHide行为变更
    现在与微信原生pageLifetimes.show/hide完全对齐,不再保证组件初始挂载时必定执行pageShow。这意味着:

    • 组件可能在后台页面挂载
    • 初始化逻辑不应依赖pageShow
    • 需要将初始化代码移到更合适的生命周期中
  2. 非标准生命周期移除
    移除了beforeCreate/onBeforeCreate等非标准生命周期,改为直接导出内部生命周期变量供开发者使用。

API导出方式优化

为了更好的Tree Shaking支持:

  • Mpx默认导出对象不再包含createComponent/createStore等方法
  • 这些方法现在通过命名导出(named export)提供
  • Mpx对象仅保留set/use等全局API

I18n作用域调整

国际化支持方面有重要变更:

  • this.$i18n现在指向全局作用域
  • 如需创建局部作用域,必须使用组合式API的useI18n方法

Watch API规范化

watch API现在严格遵循Vue的标准:

  • 不再接受带有handler属性的对象形式作为第二个参数
  • 第二个参数必须直接是回调函数
  • 这种变更使API行为与Vue官方实现完全一致

升级建议

  1. 逐步升级
    建议先在开发环境进行升级测试,确认无重大问题后再应用到生产环境。

  2. 生命周期检查
    特别检查项目中是否依赖了pageShow进行初始化,这类代码需要重构。

  3. API导入方式检查
    检查项目中是否直接使用了Mpx.createComponent等现在需要通过命名导入的方法。

  4. I18n作用域评估
    评估国际化实现是否需要调整为局部作用域。

  5. Watch用法检查
    检查项目中是否使用了对象形式的watch处理器,需要调整为函数形式。

通过遵循这些指南,开发者可以顺利将项目从Mpx@2.7升级到2.8版本,享受组合式API带来的开发体验提升和运行时优化。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值