Skip to content
Vuejs integration for Ionic v4
Branch: master
Clone or download
Latest commit 646bb20 Mar 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
build Streamline ionicons imports Feb 5, 2019
cookbook Update rollup build config and cookbook examples. Include definition … Oct 9, 2018
src Refactor ion-vue-router, cleanup Mar 16, 2019
test Allow HTML elements to be attached to DOM (#28) Sep 5, 2018
types Refactor ion-vue-router, cleanup Mar 16, 2019
.babelrc Add babel config Jul 31, 2018
.editorconfig Features/typescript (#39) Oct 8, 2018
.gitignore Improve typescript typings and config (#44) Oct 11, 2018
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
README.md
jest.config.js
package-lock.json [release] 1.3.0 Mar 16, 2019
package.json
sonar-project.properties
tsconfig.json Improve typescript typings and config (#44) Oct 11, 2018
tslint.json

README.md

Ionic-Vue becomes @ionic/vue

Important: This project has been contributed to the Ionic core and can be used as @ionic/vue.

Modus Create engineers will continue to support the community at the Ionic's official Issue board

However, this repository is still being actively maintained and kept in-sync with the official @ionic/vue. The main difference being the availability of IonicVueRouter and flexibility of choosing dependency versions.

Our goal is to allow developers to be on the bleeding-edge and freely experiment, thus we are delivering features and bug fixes as fast as possible. Apart from the router you can switch between the libraries without any changes to your code-base.

Bug fixes, features, documentation and any other changes will be contributed back as well.



Ionic-Vue

CircleCI codecov SonarQube PRs Welcome MIT Licensed

Ionic integration adapters for Vue.

@modus/ionic-vue

Installing / Getting started

A quick introduction of the minimal setup you need to get a hello world up & running.

npm install @modus/ionic-vue

Now you can use it during the initialization step of your Vue app.

import Vue from 'vue'
import Ionic, { IonicVueRouter } from '@modus/ionic-vue'
import Home from './Home.vue'

Vue.use(Ionic)
Vue.use(IonicVueRouter)

new Vue({
  router: new IonicVueRouter({
    routes: [
      { path: '/', component: Home },
      { path: '/page', component: () => import('./Page.vue') }
    ],
  }),
}).$mount('ion-app')

Ionic requires a root element of ion-app in your HTML.

IonicVueRouter requires ion-vue-router element in order to render Ionic transitions. Otherwise you can use the official VueRouter

<!DOCTYPE html>
<html lang="en">
  <head>...</head>

  <body>
    <ion-app>
      <ion-vue-router />
    </ion-app>
  </body>
</html>

IonicVue

IonicVue abstracts DOM interaction of Ionic UI components inside a Vue application and can be used via this.$ionic.

Vue.component('Foo', {
  methods: {
    notify() {
      this.$ionic.alertController
        .create({
          header: 'Notification',
          subHeader: null,
          message: 'Hello World',
          buttons: ['Bye'],
        })
        .then(a => a.present())
        .catch(console.error)
    },
  },
})

IonicVue supports all of the Ionic controllers:

IonicVueRouter

IonicVueRouter binds Ionic transitions and routing functionalities with Vue Router.

It 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.

Cookbook examples

Important: these examples are deprecated, please use the ionic-vue-examples instead.

Developing

Setting up Dev

Simply clone the repo and install dependencies to get started with development.

git clone https://github.com/moduscreateorg/ionic-vue.git
cd ionic-vue/
npm install

Testing will require peer dependencies to be installed. Peer dependencies are:

  • vue
  • vue-template-compiler
  • vue-router
  • @ionic/core

You can install peer dependencies without modifying package.json.

npm run install.peer

We recommend trying out your ionic-vue changes in an actual app. You can do that with npm link:

cd ionic-vue/
npm link
cd ../sample-app/
npm link @modus/ionic-vue

Beep is a fantastic sample application you can use to test ionic-vue.

Building

Rollup automatically creates distribution packages.

For development build run:

npm run dev

For automatic rebuild on changes run:

npm run watch

For production build run:

npm run prod

Tests

Make sure you have installed peer dependencies (explained above) before running tests.

npm test

Static Analysis

The ionic-vue project uses SonarQube's SonarCloud product for static analysis scans.

Our publicly available dashboard for the project can be found here

Modus Create

Modus Create 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.

Modus Create

This project is part of Modus Labs.

Modus Labs

Licensing

This project is MIT licensed.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.