配置
Ionic 配置提供了一种在整个应用中全局更改组件属性的方法。它可以设置应用模式、标签按钮布局、动画等。
全局配置
可用的配置键可以在 IonicConfig 接口中找到。
以下示例禁用了涟漪效果并将默认模式设置为 Material Design:
- JavaScript
- Angular
- React
- Vue
example.js
window.Ionic = {
config: {
rippleEffect: false,
mode: 'md',
},
};
app.module.ts
import { IonicModule } from '@ionic/angular';
@NgModule({
...
imports: [
IonicModule.forRoot({
rippleEffect: false,
mode: 'md'
})
],
...
})
setupIonicReact 函数必须在渲染任何 Ionic 组件(包括 IonApp)之前调用。
App.tsx
import { setupIonicReact } from '@ionic/react';
setupIonicReact({
rippleEffect: false,
mode: 'md',
});
main.ts
import { IonicVue } from '@ionic/vue';
import { createApp } from 'vue';
createApp(App).use(IonicVue, {
rippleEffect: false,
mode: 'md',
});
按组件配置
Ionic 配置不是响应式的。在组件渲染后更新配置的值将导致使用之前的值。当您需要响应式值时,建议使用组件的属性而不是更新配置。
- JavaScript
- Angular
- React
- Vue
不推荐
window.Ionic = {
config: {
// 当您的应用需要响应式值时,不推荐使用
backButtonText: 'Go Back',
},
};
推荐
<ion-back-button></ion-back-button>
<script>
const backButton = document.querySelector('ion-back-button');
/**
* 返回按钮文本可以随时在
* 语言环境变化时更新。
*/
backButton.text = 'Go Back';
</script>
不推荐
import { IonicModule } from '@ionic/angular';
@NgModule({
...
imports: [
IonicModule.forRoot({
// 当您的应用需要响应式值时,不推荐使用
backButtonText: 'Go Back'
})
],
...
});
推荐
<ion-back-button [text]="backButtonText"></ion-back-button>
@Component(...)
class MyComponent {
/**
* 返回按钮文本可以随时在
* 语言环境变化时更新。
*/
backButtonText = 'Go Back';
}
不推荐
import { setupIonicReact } from '@ionic/react';
setupIonicReact({
// 当您的应用需要响应式值时,不推荐使用
backButtonText: 'Go Back',
});
推荐
import { useState } from 'react';
import { IonBackButton } from '@ionic/react';
const ExampleComponent = () => {
const [backButtonText, setBackButtonText] = useState('Go Back');
return (
{/*
* 返回按钮文本可以随时在
* 语言环境变化时更新。
*/}
<IonBackButton text={backButtonText}></IonBackButton>
)
}
不推荐
import { IonicVue } from '@ionic/vue';
import { createApp } from 'vue';
// 当您的应用需要响应式值时,不推荐使用
createApp(App).use(IonicVue, {
backButtonText: 'Go Back',
});
推荐
<template>
<ion-back-button [text]="backButtonText"></ion-back-button>
</template>
<script setup lang="ts">
import { IonBackButton } from '@ionic/vue';
import { ref } from 'vue';
/**
* 返回按钮文本可以随时在
* 语言环境变化时更新。
*/
const backButtonText = ref('Go Back');
</script>
按平台配置
Ionic 配置也可以按平台进行设置。例如,这允许您在应用在可能较慢的浏览器中运行时禁用动画。开发者可以利用 Platform 工具来实现这一点。
在以下示例中,我们仅在应用运行在移动 Web 浏览器中时才禁用 Ionic 应用中的所有动画。
- Angular
- React
- Vue
备注
由于配置是在运行时设置的,您将无法使用 Platform 依赖注入。相反,您可以直接使用 provider 使用的底层函数。
有关您可以检测的平台类型,请参阅 Angular 平台文档。
app.module.ts
import { isPlatform, IonicModule } from '@ionic/angular';
@NgModule({
...
imports: [
IonicModule.forRoot({
animated: !isPlatform('mobileweb')
})
],
...
})
备注
有关您可以检测的平台类型,请参阅 React 平台文档。
App.tsx
import { isPlatform, setupIonicReact } from '@ionic/react';
setupIonicReact({
animated: !isPlatform('mobileweb'),
});
备注
有关您可以检测的平台类型,请参阅 Vue 平台文档。
main.ts
import { IonicVue, isPlatform } from '@ionic/vue';
createApp(App).use(IonicVue, {
animated: !isPlatform('mobileweb'),
});