{"id":13550220,"url":"https://github.com/ModusCreateOrg/ionic-vue","last_synced_at":"2025-04-03T00:33:18.831Z","repository":{"id":96449042,"uuid":"138721091","full_name":"ModusCreateOrg/ionic-vue","owner":"ModusCreateOrg","description":"Vuejs integration for Ionic versions 4 and 5","archived":false,"fork":false,"pushed_at":"2023-07-18T21:42:33.000Z","size":1689,"stargazers_count":271,"open_issues_count":17,"forks_count":26,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-29T07:04:48.377Z","etag":null,"topics":["hacktoberfest","ionic","vue","vue-router","vuejs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ModusCreateOrg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-06-26T10:14:41.000Z","updated_at":"2024-12-03T21:04:28.000Z","dependencies_parsed_at":"2023-12-08T00:13:55.628Z","dependency_job_id":"c13c66f8-f31a-41bd-b95c-e4f4faf9a6e7","html_url":"https://github.com/ModusCreateOrg/ionic-vue","commit_stats":{"total_commits":229,"total_committers":8,"mean_commits":28.625,"dds":"0.31441048034934493","last_synced_commit":"4cb62c2ffc0e625e9fc10f1f816591ac0ff24ee9"},"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModusCreateOrg%2Fionic-vue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModusCreateOrg%2Fionic-vue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModusCreateOrg%2Fionic-vue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModusCreateOrg%2Fionic-vue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ModusCreateOrg","download_url":"https://codeload.github.com/ModusCreateOrg/ionic-vue/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246916733,"owners_count":20854511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","ionic","vue","vue-router","vuejs"],"created_at":"2024-08-01T12:01:30.369Z","updated_at":"2025-04-03T00:33:15.790Z","avatar_url":"https://github.com/ModusCreateOrg.png","language":"TypeScript","readme":"\n# Ionic-Vue\n\n[![CircleCI](https://circleci.com/gh/ModusCreateOrg/ionic-vue.svg?style=shield)](https://circleci.com/gh/ModusCreateOrg/ionic-vue)\n[![codecov](https://codecov.io/gh/ModusCreateOrg/ionic-vue/branch/master/graph/badge.svg?token=mvAX8xwXDJ)](https://codecov.io/gh/ModusCreateOrg/ionic-vue)\n[![SonarQube](https://sonarcloud.io/api/project_badges/measure?project=ionic_vue\u0026metric=security_rating)](https://sonarcloud.io/dashboard?id=ionic_vue)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n[![MIT Licensed](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/your/your-project/blob/master/LICENSE)\n\nIonic integration adapters for Vue.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://res.cloudinary.com/modus-labs/image/upload/w_560/v1535019553/labs/logo-ionic-vue.svg\" width=\"260\" alt=\"@modus/ionic-vue\"\u003e\n\u003c/p\u003e\n\n## `Ionic-Vue` vs `@ionic/vue`\n`Ionic-Vue` codebase has been contributed to the Ionic core and as [@ionic/vue](https://github.com/ionic-team/ionic/tree/master/vue). However, `@ionic/vue` provides limited support to Ionic v4.\n\nThe amazing Ionic team is always looking to bring the most modern of browser capabilities to their framework. The official Vue support will land after Vue 3 has stabilized.\n\nModus Create engineers continue to maintain this library to support the community that wants to create beautiful mobile apps with Vue and Ionic.\n\nOur goal is to allow developers to be up to date with the latest advances of Ionic and Vue. Thus we are delivering features and bug fixes as fast as possible.\n\n\n## Roadmap\n\nOverview: all of the controllers and major features such as transitions and router have been implemented and tested for several months now.\nApart from minor improvements and further testing of various mixes of Ionic components and implementations this library is considered feature complete.\n\n| Feature     | Status  | @ionic/vue | Notes |\n|-------------|---------|------------|-------|\n| Router      | :heavy_check_mark: | :heavy_check_mark: | Fully implemented |\n| Router View | :heavy_check_mark: | :heavy_check_mark: | Fully implemented |\n| Tabs        | :heavy_check_mark: | :heavy_check_mark: | Fully implemented |\n| Controllers | :heavy_check_mark: | :heavy_check_mark: | Fully implemented |\n| TypeScript  | :heavy_check_mark: | :heavy_check_mark: | Fully implemented |\n| MS Edge Fix | :heavy_check_mark: | :heavy_check_mark: | Fully implemented |\n| Router keep-alive | :heavy_check_mark: | [Pending](https://github.com/ionic-team/ionic/pull/18561) | - |\n| Functional Inputs | :heavy_check_mark: | [Pending](https://github.com/ionic-team/ionic/pull/19087) | - |\n| Import controllers directly | :heavy_check_mark: | [Pending](https://github.com/ionic-team/ionic/pull/19573) | Improve treeshaking and sync with react and angular implementations |\n| Restore scroll on navigation | :heavy_check_mark: | - | When going back through history restore the scroll position |\n| Unit tests  | :x: | :x: |  Outdated as were originally written in plain JS, need to be updated for TS |\n\n## Ionic versions 4 and 5\n:warning: Moving forward all versions of `ionic-vue` will be supporting Ionic 5 only, if you'd like to continue using Ionic 4 please use `ionic-vue` version `1.3.4`\n\n## Vue 3\n:construction: We are actively developing the next major version of this library. It supports Vue 3 and all of the new APIs like Composition, new transition features, etc. You can [track the progress in the dev branch](https://github.com/ModusCreateOrg/ionic-vue/tree/dev).\n\n## Installing / Getting started\n\nA quick introduction of the minimal setup you need to get a hello world up and running.\n\n```shell\nnpm install @ionic/core @modus/ionic-vue\n```\n\nNow you can use it during the initialization step of your Vue app.\n\n```js\nimport Vue from 'vue'\nimport '@ionic/core/css/ionic.bundle.css'\nimport Ionic, { IonicVueRouter } from '@modus/ionic-vue'\nimport Home from './Home.vue'\n\nVue.use(Ionic)\nVue.use(IonicVueRouter)\n\nnew Vue({\n  router: new IonicVueRouter({\n    routes: [\n      { path: '/', component: Home },\n      { path: '/page', component: () =\u003e import('./Page.vue') }\n    ],\n  }),\n}).$mount('ion-app')\n```\n\nIonic requires a root element of `ion-app` in your HTML.\n\nIonicVueRouter requires `ion-vue-router` element in order to render Ionic transitions. Otherwise you can use the [official VueRouter](https://router.vuejs.org/)\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"en\"\u003e\n  \u003chead\u003e...\u003c/head\u003e\n\n  \u003cbody\u003e\n    \u003cion-app\u003e\n      \u003cion-vue-router /\u003e\n    \u003c/ion-app\u003e\n  \u003c/body\u003e\n\u003c/html\u003e\n```\n\n### IonicVue\n\n`IonicVue` abstracts DOM interaction of Ionic UI components inside a Vue application.\n\n```js\nimport { alertController } from '@ionic/vue';\n\nVue.component('Foo', {\n  methods: {\n    notify() {\n      alertController\n        .create({\n          header: 'Notification',\n          subHeader: null,\n          message: 'Hello World',\n          buttons: ['Bye'],\n        })\n        .then(a =\u003e a.present())\n        .catch(console.error)\n    },\n  },\n})\n```\n\nIonicVue supports all of the Ionic controllers:\n\n- [Action Sheet](https://github.com/ionic-team/ionic/tree/master/core/src/components/action-sheet)\n- [Alert](https://github.com/ionic-team/ionic/tree/master/core/src/components/alert)\n- [Loading](https://github.com/ionic-team/ionic/tree/master/core/src/components/loading)\n- [Menu](https://github.com/ionic-team/ionic/tree/master/core/src/components/menu)\n- [Modal](https://github.com/ionic-team/ionic/tree/master/core/src/components/modal)\n- [Picker](https://github.com/ionic-team/ionic/tree/master/core/src/components/picker)\n- [Popover](https://github.com/ionic-team/ionic/tree/master/core/src/components/popover)\n- [Toast](https://github.com/ionic-team/ionic/tree/master/core/src/components/toast)\n\n### IonicVueRouter\n\n`IonicVueRouter` binds Ionic transitions and routing functionalities with Vue Router.\n\nIt is an extension of the official Vue Router thus it can be used as a drop-in replacement with all of the methods, hooks, etc. working as expected.\n\n## Developing\n\n### Setting up Dev\n\nSimply clone the repo and install dependencies to get started with development.\n\n```shell\ngit clone https://github.com/moduscreateorg/ionic-vue.git\ncd ionic-vue/\nnpm install\n```\n\nTesting will require peer dependencies to be installed. Peer dependencies are:\n\n- `vue`\n- `vue-template-compiler`\n- `vue-router`\n- `@ionic/core`\n\nYou can install peer dependencies without modifying package.json.\n\n```sh\nnpm run install.peer\n```\n\nWe recommend trying out your `ionic-vue` changes in an actual app. You can do that with `npm link`:\n\n```sh\ncd ionic-vue/\nnpm link\ncd ../sample-app/\nnpm link @modus/ionic-vue\n```\n\n[Beep](https://github.com/ModusCreateOrg/beep) is a fantastic sample application you can use to test `ionic-vue`.\n\n### Building\n\nRollup automatically creates distribution packages.\n\nFor development build run:\n\n```shell\nnpm run dev\n```\n\nFor automatic rebuild on changes run:\n\n```shell\nnpm run watch\n```\n\nFor production build run:\n\n```shell\nnpm run prod\n```\n\n## Tests\n\nMake sure you have installed peer dependencies (explained above) before running tests.\n\n```shell\nnpm test\n```\n\n## Static Analysis\n\nThe ionic-vue project uses SonarQube's SonarCloud product for static analysis scans.\n\nOur publicly available dashboard for the project can be found [here](https://sonarcloud.io/dashboard?id=ionic_vue)\n\n## Modus Create\n\n[Modus Create](https://moduscreate.com) is a digital product consultancy. We use a distributed team of the best talent in the world to offer a full suite of digital product design-build services; ranging from consumer facing apps, to digital migration, to agile development training, and business transformation.\n\n[![Modus Create](https://res.cloudinary.com/modus-labs/image/upload/h_80/v1533109874/modus/logo-long-black.png)](https://moduscreate.com)\n\nThis project is part of [Modus Labs](https://labs.moduscreate.com).\n\n[![Modus Labs](https://res.cloudinary.com/modus-labs/image/upload/h_80/v1531492623/labs/logo-black.png)](https://labs.moduscreate.com)\n\n## Licensing\n\nThis project is [MIT licensed](./LICENSE).\n\n","funding_links":[],"categories":["TypeScript","Components \u0026 Libraries","Integrations [🔝](#readme)","Integrations"],"sub_categories":["Integrations","Payment"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FModusCreateOrg%2Fionic-vue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FModusCreateOrg%2Fionic-vue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FModusCreateOrg%2Fionic-vue/lists"}