跳到主要内容
版本:v8

添加到现有 Vue 项目

本指南介绍如何将 Ionic Vue 添加到现有的 Vue 项目。如果您想从头开始创建新项目,请查阅 Ionic Vue 快速入门 指南。有关 Ionic Vue 如何与 Vue 配合使用的概述,包括版本支持和工具链,请查阅 Ionic Vue 概述

提示

本指南使用 JavaScript 示例。如果您使用 TypeScript,设置过程相同,但需要使用 .ts 文件扩展名代替 .js

设置

信息

本指南遵循使用 create-vue(使用 Vite)创建的 Vue 应用的结构。如果您使用不同的工具(如 Vue CLI)创建 Vue 应用,您的文件结构和设置可能会有所不同。

请按照以下步骤将 Ionic Vue 添加到现有 Vue 项目:

1. 安装包

npm install @ionic/vue @ionic/vue-router vue-router

2. 配置 Ionic Vue

更新 src/main.js 以包含 IonicVue 并导入所需的 Ionic 框架样式表:

src/main.js
import { createApp } from 'vue';
import { IonicVue } from '@ionic/vue';

import App from './App.vue';

/* Ionic 组件正常工作所需的核心 CSS */
import '@ionic/vue/css/core.css';

/* 使用 Ionic 构建的应用的基础 CSS */
import '@ionic/vue/css/normalize.css';
import '@ionic/vue/css/structure.css';
import '@ionic/vue/css/typography.css';

createApp(App).use(IonicVue).mount('#app');
信息

虽然 core.css 是必需的,但 normalize.cssstructure.csstypography.css 是推荐但非必需的。它们可以标准化跨浏览器差异,确保正确的滚动行为,并提供一致的排版和表单样式。没有它们,您可能需要自己处理这些问题。更多详情请参阅全局样式表

使用单个组件

完成上述设置后,您就可以在现有的 Vue 应用中使用 Ionic 组件了。以下是一个使用示例:

src/App.vue 更新为以下内容:

src/App.vue
<template>
<ion-button>Button</ion-button>
<ion-datetime></ion-datetime>
</template>

<script setup lang="ts">
import { IonButton, IonDatetime } from '@ionic/vue';
</script>

请访问组件页面查看所有可用的 Ionic 组件。

使用 Ionic 页面

如果您想使用具有完整导航和页面过渡效果的 Ionic 页面,请执行以下额外设置步骤。

1. 添加额外的 Ionic 框架样式表

更新 src/main.js 中导入的样式表:

src/main.js
/* Ionic 组件正常工作所需的核心 CSS */
import '@ionic/vue/css/core.css';

/* 使用 Ionic 构建的应用的基础 CSS */
import '@ionic/vue/css/normalize.css';
import '@ionic/vue/css/structure.css';
import '@ionic/vue/css/typography.css';

/* 可选的 CSS 工具,可以注释掉 */
import '@ionic/vue/css/padding.css';
import '@ionic/vue/css/float-elements.css';
import '@ionic/vue/css/text-alignment.css';
import '@ionic/vue/css/text-transformation.css';
import '@ionic/vue/css/flex-utils.css';
import '@ionic/vue/css/display.css';

这些样式表设置了整体页面结构并提供了 CSS 工具以加快开发速度。部分样式表是可选的。有关哪些样式表是必需的详细信息,请查阅全局样式表

2. 设置主题

创建一个 src/theme/variables.css 文件,内容如下:

src/theme/variables.css
/* 有关如何创建自己的主题的信息,请参考:
https://ionicframework.com/docs/theming/ */

然后,在 src/main.js 中导入该文件以及暗色主题样式表:

src/main.js
import { createApp } from 'vue';
import App from './App.vue';

import { IonicVue } from '@ionic/vue';

/* Ionic 组件正常工作所需的核心 CSS */
import '@ionic/vue/css/core.css';

/* 使用 Ionic 构建的应用的基础 CSS */
import '@ionic/vue/css/normalize.css';
import '@ionic/vue/css/structure.css';
import '@ionic/vue/css/typography.css';

/* 可选的 CSS 工具,可以注释掉 */
import '@ionic/vue/css/padding.css';
import '@ionic/vue/css/float-elements.css';
import '@ionic/vue/css/text-alignment.css';
import '@ionic/vue/css/text-transformation.css';
import '@ionic/vue/css/flex-utils.css';
import '@ionic/vue/css/display.css';

/**
* Ionic 暗色模式
* -----------------------------------------------------
* 更多信息请参考:
* https://ionicframework.com/docs/theming/dark-mode
*/

/* @import '@ionic/vue/css/palettes/dark.always.css'; */
/* @import '@ionic/vue/css/palettes/dark.class.css'; */
import '@ionic/vue/css/palettes/dark.system.css';

/* 主题变量 */
import './theme/variables.css';

createApp(App).use(IonicVue).mount('#app');

variables.css 文件可用于创建自定义的 Ionic 框架主题。dark.system.css 导入在系统设置为偏好暗色外观时为您的 Ionic 应用启用暗色模式支持。您可以通过取消注释不同的暗色主题导入或在 theme/variables.css 中添加自定义 CSS 变量来自定义主题行为。

3. 更新应用组件

src/App.vue 更新为以下内容:

src/App.vue
<template>
<ion-app>
<ion-router-outlet></ion-router-outlet>
</ion-app>
</template>

<script setup lang="ts">
import { IonApp, IonRouterOutlet } from '@ionic/vue';
</script>

4. 创建首页

src/views/HomePage.vue 创建新文件,内容如下:

src/views/HomePage.vue
<template>
<ion-page>
<ion-header :translucent="true">
<ion-toolbar>
<ion-title>Home</ion-title>
</ion-toolbar>
</ion-header>

<ion-content :fullscreen="true">
<ion-header collapse="condense">
<ion-toolbar>
<ion-title size="large">Home</ion-title>
</ion-toolbar>
</ion-header>

<div id="container">
<strong>Ready to create an app?</strong>
<p>
Start with Ionic
<a target="_blank" rel="noopener noreferrer" href="https://ionicframework.com/docs/components"
>UI Components</a
>
</p>
</div>
</ion-content>
</ion-page>
</template>

<script setup lang="ts">
import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar } from '@ionic/vue';
</script>

<style scoped>
#container {
text-align: center;

position: absolute;
left: 0;
right: 0;
top: 50%;
transform: translateY(-50%);
}

#container strong {
font-size: 20px;
line-height: 26px;
}

#container p {
font-size: 16px;
line-height: 22px;

color: #8c8c8c;

margin: 0;
}

#container a {
text-decoration: none;
}
</style>

5. 设置路由

src/router/index.js 中添加一个文件,定义路由:

src/router/index.js
import { createRouter, createWebHistory } from '@ionic/vue-router';
import HomePage from '../views/HomePage.vue';

const routes = [
{
path: '/',
redirect: '/home',
},
{
path: '/home',
name: 'Home',
component: HomePage,
},
];

const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes,
});

export default router;

更新 src/main.js 以包含路由:

src/main.js
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';

import { IonicVue } from '@ionic/vue';

/* Ionic 组件正常工作所需的核心 CSS */
import '@ionic/vue/css/core.css';

/* 使用 Ionic 构建的应用的基础 CSS */
import '@ionic/vue/css/normalize.css';
import '@ionic/vue/css/structure.css';
import '@ionic/vue/css/typography.css';

/* 可选的 CSS 工具,可以注释掉 */
import '@ionic/vue/css/padding.css';
import '@ionic/vue/css/float-elements.css';
import '@ionic/vue/css/text-alignment.css';
import '@ionic/vue/css/text-transformation.css';
import '@ionic/vue/css/flex-utils.css';
import '@ionic/vue/css/display.css';

/**
* Ionic 暗色模式
* -----------------------------------------------------
* 更多信息请参考:
* https://ionicframework.com/docs/theming/dark-mode
*/

/* @import '@ionic/vue/css/palettes/dark.always.css'; */
/* @import '@ionic/vue/css/palettes/dark.class.css'; */
import '@ionic/vue/css/palettes/dark.system.css';

/* 主题变量 */
import './theme/variables.css';

const app = createApp(App).use(IonicVue).use(router);

router.isReady().then(() => {
app.mount('#app');
});

大功告成!您的 Ionic Vue 应用现已配置了完整的 Ionic 页面支持。运行 npm run dev 启动开发服务器并查看您的应用。

下一步

现在您已经将 Ionic Vue 集成到项目中,请查阅:

导航

了解如何使用 Vue Router 在 Ionic Vue 应用中处理路由和导航。

组件

探索 Ionic 丰富的 UI 组件库,用于构建精美的应用。

主题

了解如何使用 Ionic 强大的主题系统自定义应用的外观和风格。

Capacitor 文档

探索如何使用原生设备功能,并通过 Capacitor 将应用部署到 iOS、Android 和 Web。