Updating from Ionic 5 to 6
This guide assumes that you have already updated your app to the latest version of Ionic 5. Make sure you have followed the Updating to Ionic 5 Guide before starting this guide.
For a complete list of breaking changes from Ionic 5 to Ionic 6, please refer to the breaking changes document in the Ionic Framework repository.
はじめ方
Angular
- Ionic 6 は Angular 12+ をサポートしています。 Angular Update Guide に沿って、最新バージョンの Angular に更新します。.
- Ionic6 の最新バージョンに更新します。
npm install @ionic/angular@6
Ionic Angular Server を使用している場合は、それも必ず更新してください:
npm install @ionic/angular@6 @ionic/angular-server@6
- Remove any usage of
Config.set()
. Instead, set your config inIonicModule.forRoot()
. See the Angular Config Documentation for more examples. - Remove any usage of the
setupConfig
function previously exported from@ionic/angular
. Set your config inIonicModule.forRoot()
instead.
React
- Ionic 6 は React 17+ をサポートしています。React の最新バージョンに更新します:
npm install react@latest react-dom@latest
- Ionic 6 の最新バージョンに更新します:
npm install @ionic/react@6 @ionic/react-router@6
package.json
のscripts
オブジェクトにあるtest
フィールドを更新して、transformIgnorePatterns
を含めます:
"scripts": {
"test": "react-scripts test --transformIgnorePatterns 'node_modules/(?!(@ionic/react|@ionic/react-router|@ionic/core|@stencil/core|ionicons)/)'",
...
}
- あなたの
App
コンポーネントでsetupIonicReact
を呼び出して下さい。もうsetupConfig
を利用している場合は、setupIonicReact
に置き換えてください:
Before
import { setupConfig } from '@ionic/react';
...
setupConfig({
mode: 'md'
});
After
import { setupIonicReact } from '@ionic/react';
...
setupIonicReact({
mode: 'md'
});
開発者は、 setupIonicReact
カスタム 構成を設定していない場合でも、インポートして呼び出す必要があります。
See the React Config Documentation for more examples.
5.すべてのコントローラのインポートを @ionic/core
から @ionic/core/components
に更新します。例として、menuController
のマイグレーションを紹介します。
Before
import { menuController } from '@ionic/core';
After
import { menuController } from '@ionic/core/components';
Vue
- Ionic 6 は Vue 3.0.6+ をサポートしています。Vue の最新バージョンに更新ください。
npm install vue@3 vue-router@4
- Vue CLI を使用するアプリの場合は、Vue CLI 5 をインストールします。
npm install -g @vue/cli@next
次に、すべての Vue CLI プラグインをアップグレードします。
vue upgrade --next
- Ionic 6 の最新バージョンに更新します。
npm install @ionic/vue@6 @ionic/vue-router@6
package.json
のjest.config.js
かjest
のどちらかにtransformIgnorePatterns
を含めます。
module.exports = {
...
transformIgnorePatterns: ['/node_modules/(?!@ionic/vue|@ionic/vue-router|@ionic/core|@stencil/core|ionicons)']
}
{
...
"jest": {
"transformIgnorePatterns": ["/node_modules/(?!@ionic/vue|@ionic/vue-router|@ionic/core|@stencil/core|ionicons)"]
}
}
詳しくは Testing section below をご覧ください。
-
Remove any usage of the
setupConfig
function previously exported from@ionic/vue
. Set your config when installing theIonicVue
plugin instead. See the Vue Config Documentation for more examples. -
useIonRouter
で利用してる型IonRouter
をUseIonRouterResult
に変更してください。 -
useKeyboard
で利用してる型IonKeyboardRef
をUseKeyboardResult
に変更してください。 -
すべてのオーバーレイイベントリスナーの名前を変更し、新しいフォーマットを使用するようにします。
Before
<ion-modal
:is-open="modalOpenRef"
@onWillPresent="onModalWillPresentHandler"
@onDidPresent="onModalDidPresentHandler"
@onWillDismiss="onModalWillDismissHandler"
@onDidDismiss="onModalDidDismissHandler"
>
...
</ion-modal>
After
<ion-modal
:is-open="modalOpenRef"
@willPresent="onModalWillPresentHandler"
@didPresent="onModalDidPresentHandler"
@willDismiss="onModalWillDismissHandler"
@didDismiss="onModalDidDismissHandler"
>
...
</ion-modal>
これらは ion-action-sheet
, ion-alert
, ion-loading
, ion-modal
, ion-picker
, ion-popover
, ion-toast
に適用されます。
ion-router-outlet
をion-tabs
の中にいれて利用します。
Before
<ion-tabs>
<ion-tab-bar slot="bottom"> ... </ion-tab-bar>
</ion-tabs>
<script>
import { IonTabs, IonTabBar } from '@ionic/vue';
import { defineComponent } from 'vue';
export default defineComponent({
components: { IonTabs, IonTabBar },
});
</script>
After
<ion-tabs>
<ion-router-outlet></ion-router-outlet>
<ion-tab-bar slot="bottom"> ... </ion-tab-bar>
</ion-tabs>
<script>
import { IonTabs, IonTabBar, IonRouterOutlet } from '@ionic/vue';
import { defineComponent } from 'vue';
export default defineComponent({
components: { IonTabs, IonTabBar, IonRouterOutlet },
});
</script>
- タブ内の追加ルートは、子ルートではなく兄弟ルートとして書き直す必要があります。
Before
const routes: Array<RouteRecordRaw> = [
{
path: '/',
redirect: '/tabs/tab1'
},
{
path: '/tabs/',
component: Tabs,
children: [
{
path: '',
redirect: 'tab1'
},
{
path: 'tab1',
component: () => import('@/views/Tab1.vue'),
children: {
{
path: 'view',
component: () => import('@/views/Tab1View.vue')
}
}
},
{
path: 'tab2',
component: () => import('@/views/Tab2.vue')
},
{
path: 'tab3',
component: () => import('@/views/Tab3.vue')
}
]
}
]
After
const routes: Array<RouteRecordRaw> = [
{
path: '/',
redirect: '/tabs/tab1',
},
{
path: '/tabs/',
component: Tabs,
children: [
{
path: '',
redirect: 'tab1',
},
{
path: 'tab1',
component: () => import('@/views/Tab1.vue'),
},
{
path: 'tab1/view',
component: () => import('@/views/Tab1View.vue'),
},
{
path: 'tab2',
component: () => import('@/views/Tab2.vue'),
},
{
path: 'tab3',
component: () => import('@/views/Tab3.vue'),
},
],
},
];
Core
- Ionic 6 の最新バージョンにアップデートください。
npm install @ionic/core@6