All Projects → ModusCreateOrg → Ionic Vue

ModusCreateOrg / Ionic Vue

Licence: mit
Vuejs integration for Ionic versions 4 and 5

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Ionic Vue

Generator Ngx Rocket
🚀 Extensible Angular 11+ enterprise-grade project generator
Stars: ✭ 1,329 (+383.27%)
Mutual labels:  hacktoberfest, ionic
Vue Cart
💵 A shop cart made with vue
Stars: ✭ 140 (-49.09%)
Mutual labels:  hacktoberfest, vue-router
Cordova Plugin Fingerprint Aio
👆 📱 Cordova Plugin for fingerprint sensors (and FaceID) with Android and iOS support
Stars: ✭ 236 (-14.18%)
Mutual labels:  hacktoberfest, ionic
Php
All Algorithms implemented in Php
Stars: ✭ 272 (-1.09%)
Mutual labels:  hacktoberfest
Protein
💊 Protein is an IntelliJ Plugin to generate Kotlin code for Retrofit 2 and RxJava 2 based on a Swagger definition
Stars: ✭ 273 (-0.73%)
Mutual labels:  hacktoberfest
Playwright Go
Playwright for Go a browser automation library to control Chromium, Firefox and WebKit with a single API.
Stars: ✭ 272 (-1.09%)
Mutual labels:  hacktoberfest
Patchwork Patcher
Patches Forge mod jars, allowing them to be loaded by Fabric
Stars: ✭ 273 (-0.73%)
Mutual labels:  hacktoberfest
Cryptoexchange
[UNMAINTAINED] Ruby library to query market data from cryptocurrency exchanges (https://www.coingecko.com)
Stars: ✭ 272 (-1.09%)
Mutual labels:  hacktoberfest
Ember Css Modules
CSS Modules for ambitious applications
Stars: ✭ 274 (-0.36%)
Mutual labels:  hacktoberfest
Base
Base environment for Red Eclipse and associated source files.
Stars: ✭ 273 (-0.73%)
Mutual labels:  hacktoberfest
Node Sass Magic Importer
Custom node-sass importer for selector specific imports, module importing, globbing support and importing files only once.
Stars: ✭ 273 (-0.73%)
Mutual labels:  hacktoberfest
Awesome Go Storage
A curated list of awesome Go storage projects and libraries
Stars: ✭ 3,224 (+1072.36%)
Mutual labels:  hacktoberfest
Puffin
🐦 Simple instrumentation profiler for Rust 🦀
Stars: ✭ 274 (-0.36%)
Mutual labels:  hacktoberfest
Javascript Patterns
A collection of javascript algorithms, patterns, and techniques
Stars: ✭ 273 (-0.73%)
Mutual labels:  hacktoberfest
Fvid
fvid is a project that aims to encode any file as a video using 1-bit color images to survive compression algorithms for data retrieval.
Stars: ✭ 276 (+0.36%)
Mutual labels:  hacktoberfest
Fluentresults
A generalised Result object implementation for .NET/C#
Stars: ✭ 266 (-3.27%)
Mutual labels:  hacktoberfest
Vue Admin
手把手带你用vue开发一个管理后台
Stars: ✭ 274 (-0.36%)
Mutual labels:  vue-router
Tlint
Tighten linter for Laravel conventions
Stars: ✭ 274 (-0.36%)
Mutual labels:  hacktoberfest
Travis Ci Discord Webhook
⛓ Here's your serverless solution for sending build status from Travis CI to Discord as webhooks.
Stars: ✭ 273 (-0.73%)
Mutual labels:  hacktoberfest
Nqp
NQP
Stars: ✭ 273 (-0.73%)
Mutual labels:  hacktoberfest

Ionic-Vue

CircleCI codecov SonarQube PRs Welcome MIT Licensed

Ionic integration adapters for Vue.

@modus/ionic-vue

Ionic-Vue vs @ionic/vue

Ionic-Vue codebase has been contributed to the Ionic core and as @ionic/vue. However, @ionic/vue provides limited support to Ionic v4.

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

Modus Create engineers continue to maintain this library to support the community that wants to create beautiful mobile apps with Vue and Ionic.

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

Roadmap

Overview: all of the controllers and major features such as transitions and router have been implemented and tested for several months now. Apart from minor improvements and further testing of various mixes of Ionic components and implementations this library is considered feature complete.

Feature Status @ionic/vue Notes
Router ✔️ ✔️ Fully implemented
Router View ✔️ ✔️ Fully implemented
Tabs ✔️ ✔️ Fully implemented
Controllers ✔️ ✔️ Fully implemented
TypeScript ✔️ ✔️ Fully implemented
MS Edge Fix ✔️ ✔️ Fully implemented
Router keep-alive ✔️ Pending -
Functional Inputs ✔️ Pending -
Import controllers directly ✔️ Pending Improve treeshaking and sync with react and angular implementations
Restore scroll on navigation ✔️ - When going back through history restore the scroll position
Unit tests Outdated as were originally written in plain JS, need to be updated for TS

Ionic versions 4 and 5

⚠️ 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

Vue 3

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

Installing / Getting started

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

npm install @ionic/core @modus/ionic-vue

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

import Vue from 'vue'
import '@ionic/core/css/ionic.bundle.css'
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.

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

Vue.component('Foo', {
  methods: {
    notify() {
      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.

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].