Transforms Vue.js 2.0 SFCs to Vue.js 3.0 Composition API syntax.

Overview

vue2-migration-helper

Transforms Vue.js SFCs to composition api syntax.

Build Status Codacy Badge codecov Netlify Status All Contributors

NPM

Install

npm i vue2-migration-helper

CLI

# convert all .vue files in source directory and outputs in target directory
vue2-migration-helper --source="source" --target="target"

# displays help
vue2-migration-helper --help

Programatically use

import { vue2MigrationHelper } from 'vue2-migration-helper'

vue2MigrationHelper({
  source: 'source/',
  target: 'target/',
})

Features

  • add setup method
    • with props and context arguments
  • add required vue imports
    • only adds required imports after traversing code
  • update data properties
    • Uses data variable using reactive
    • Return reactive references using ref
    • updates usage of these varaiables
  • update computed syntax
    • defines variable for each property using new syntax computed
  • update watch syntax
    • updates watch syntax
  • integrate methods directly into setup
    • defines methods into the setup body
    • updates method calls
  • update template ref usage
    • adds a new variable for each templateRef using ref(null)
    • add new defined templateRefs to return statement
  • convert props syntax
  • update lifecycle hooks and remove deperecated lifecycle hooks
    • removes depracted life cycle hooks, injects deprecated hooks code into setup method.
    • copies other hooks into the setup method
  • component registration
  • replace this usage with new context parameter for $events etc
    • replaces this keyword usage as this no longer refers to vue component itself.

missing something?

Example

For a Vue.js SFC (single file component) like this:

import SomeComponent from './SomeComponent'
const zero = {}

export default {
  props: {
    title: String,
    likes: Number,
    callback: Function,
  },

  components: {
    SomeComponent,
  },

  data() {
    return {
      one: true,
      two: 2,
      three: 'three',
    }
  },

  watch: {
    one(val) {
      console.log(val)
    },
    two: (val) => {
      console.log(val)
    },
    three: function (a, b) {
      console.log(a, b)
    },
  },

  computed: {
    oneComputed() {
      return !this.one
    },
    twoComputed: () => {
      return !this.one
    },
    threeComputed: function () {
      return !this.one
    },
  },

  created() {
    console.log('created')
  },

  mounted() {
    console.log('mounted')
  },

  methods: {
    ...[
      function fourMethod() {
        console.log('fourMethod')
      },
      function fiveMethod() {
        console.log('fiveMethod')
      },
    ],

    oneMethod() {
      const html = this.$refs.templateRef.innerHTML
      console.log('oneMethod')
      console.log(this.oneComputed)
    },

    twoMethod: function () {
      this.$refs.templateRef.innerHTML = 'html'
      console.log('twoMethod')
      console.log(this.twoComputed)
      this.oneMethod()
      console.log(this.$router)
    },

    threeMethod: () => {
      console.log('threeMethod')
      console.log(this.threeComputed)
      this.twoMethod()

      console.log(this.$store)
    },
  },
}

this script generates Vue SFC using composition API:

import {
  ref,
  reacted,
  toRefs,
  watch,
  computed,
  onCreated,
  onMounted,
} from 'vue'

import SomeComponent from './SomeComponent'
const zero = {}

export default {
  components: {
    SomeComponent,
  },
  props: {
    title: String,
    likes: Number,
    callback: Function,
  },

  setup(props, context) {
    const data = reactive({
      one: true,
      two: 2,
      three: 'three',
    })
    const templateRef = ref(null)
    watch(three, (a, b) => {
      console.log(a, b)
    })
    watch(two, (val) => {
      console.log(val)
    })
    watch(one, (val) => {
      console.log(val)
    })
    const oneComputed = computed(() => {
      return !data.one
    })
    const twoComputed = computed(() => {
      return data.two + 5
    })
    const threeComputed = computed(() => {
      return data.three.toUpperCase()
    })

    ;(() => {
      console.log('created')
    })()

    onMounted(() => {
      console.log('mounted')
    })

    function fourMethod() {
      console.log('fourMethod')
    }

    function fiveMethod() {
      console.log('fiveMethod')
    }

    function oneMethod() {
      const html = templateRef.innerHTML
      console.log('oneMethod')
      console.log(oneComputed)
      console.log(context.$data)
    }

    function twoMethod() {
      templateRef.innerHTML = 'html'
      console.log('twoMethod')
      console.log(twoComputed)
      oneMethod()
      console.log(context.$router)
    }

    function threeMethod() {
      console.log('threeMethod')
      console.log(threeComputed)
      twoMethod()
      console.log(fourMethod)
      console.log(context.$store)
    }

    return {
      ...ref(data),
      oneComputed,
      twoComputed,
      threeComputed,
      fourMethod,
      fiveMethod,
      oneMethod,
      twoMethod,
      threeMethod,
      templateRef,
    }
  },
}
Comments
  • Bump jquery from 3.4.1 to 3.5.0

    Bump jquery from 3.4.1 to 3.5.0

    Bumps jquery from 3.4.1 to 3.5.0.

    Commits
    • 7a0a850 3.5.0
    • 8570a08 Release: Update AUTHORS.txt
    • da3dd85 Ajax: Do not execute scripts for unsuccessful HTTP responses
    • 065143c Ajax: Overwrite s.contentType with content-type header value, if any
    • 1a4f10d Tests: Blacklist one focusin test in IE
    • 9e15d6b Event: Use only one focusin/out handler per matching window & document
    • 966a709 Manipulation: Skip the select wrapper for <option> outside of IE 9
    • 1d61fd9 Manipulation: Make jQuery.htmlPrefilter an identity function
    • 04bf577 Selector: Update Sizzle from 2.3.4 to 2.3.5
    • 7506c9c Build: Resolve Travis config warnings
    • Additional commits viewable in compare view
    Maintainer changes

    This version was pushed to npm by mgol, a new releaser for jquery since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Bump codecov from 3.6.5 to 3.7.1

    Bump codecov from 3.6.5 to 3.7.1

    Bumps codecov from 3.6.5 to 3.7.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump standard-version from 7.0.1 to 8.0.1

    Bump standard-version from 7.0.1 to 8.0.1

    Bumps standard-version from 7.0.1 to 8.0.1.

    Release notes

    Sourced from standard-version's releases.

    standard-version v8.0.1

    Bug Fixes

    • deps: update dependency conventional-changelog to v3.1.21 (#586) (fd456c9)
    • deps: update dependency conventional-changelog-conventionalcommits to v4.3.0 (#587) (b3b5eed)
    • deps: update dependency conventional-recommended-bump to v6.0.9 (#588) (d4d2ac2)
    • deps: update dependency git-semver-tags to v4 (#589) (a0f0e81)
    • Vulnerability Report GHSL-2020-11101 (9d978ac)

    standard-version v8.0.0

    ⚠ BREAKING CHANGES

    • composer.json and composer.lock will no longer be read from or bumped by default. If you need to obtain a version or write a version to these files, please use bumpFiles and/or packageFiles options accordingly.

    Bug Fixes

    • composer.json and composer.lock have been removed from default package and bump files. (c934f3a), closes #495 #394
    • deps: update dependency conventional-changelog to v3.1.18 (#510) (e6aeb77)
    • deps: update dependency yargs to v15.1.0 (#518) (8f36f9e)
    • deps: update dependency yargs to v15.3.1 (#559) (d98cd46)
    Changelog

    Sourced from standard-version's changelog.

    8.0.1 (2020-07-12)

    Bug Fixes

    • deps: update dependency conventional-changelog to v3.1.21 (#586) (fd456c9)
    • deps: update dependency conventional-changelog-conventionalcommits to v4.3.0 (#587) (b3b5eed)
    • deps: update dependency conventional-recommended-bump to v6.0.9 (#588) (d4d2ac2)
    • deps: update dependency git-semver-tags to v4 (#589) (a0f0e81)
    • Vulnerability Report GHSL-2020-11101 (9d978ac)

    8.0.0 (2020-05-06)

    ⚠ BREAKING CHANGES

    • composer.json and composer.lock will no longer be read from or bumped by default. If you need to obtain a version or write a version to these files, please use bumpFiles and/or packageFiles options accordingly.

    Bug Fixes

    • composer.json and composer.lock have been removed from default package and bump files. (c934f3a), closes #495 #394
    • deps: update dependency conventional-changelog to v3.1.18 (#510) (e6aeb77)
    • deps: update dependency yargs to v15.1.0 (#518) (8f36f9e)
    • deps: update dependency yargs to v15.3.1 (#559) (d98cd46)

    7.1.0 (2019-12-08)

    Features

    • Adds support for header (--header) configuration based on the spec. (#364) (ba80a0c)
    • custom 'bumpFiles' and 'packageFiles' support (#372) (564d948)

    Bug Fixes

    • deps: update dependency conventional-changelog to v3.1.15 (#479) (492e721)
    • deps: update dependency conventional-changelog-conventionalcommits to v4.2.3 (#496) (bc606f8)
    • deps: update dependency conventional-recommended-bump to v6.0.5 (#480) (1e1e215)
    • deps: update dependency yargs to v15 (#484) (35b90c3)
    • use require.resolve for the default preset (#465) (d557372)
    • deps: update dependency detect-newline to v3.1.0 (#482) (04ab36a)
    • deps: update dependency figures to v3.1.0 (#468) (63300a9)
    • deps: update dependency git-semver-tags to v3.0.1 (#485) (9cc188c)
    • deps: update dependency yargs to v14.2.1 (#483) (dc1fa61)
    • deps: update dependency yargs to v14.2.2 (#488) (ecf26b6)
    Commits
    • 57e4e25 chore: release 8.0.1 (#611)
    • 58105e1 chore: Adds basic issue templates (#613)
    • 9d978ac fix: Vulnerability Report GHSL-2020-11101
    • 267d78d chore: stop pinning deps (#615)
    • da84ec4 test(windows): skip mock-git tests for Windows (#616)
    • 871201f Merge pull request from GHSA-7xcx-6wjh-7xp2
    • a0f0e81 fix(deps): update dependency git-semver-tags to v4 (#589)
    • fd456c9 fix(deps): update dependency conventional-changelog to v3.1.21 (#586)
    • b3b5eed fix(deps): update dependency conventional-changelog-conventionalcommits to v4...
    • d4d2ac2 fix(deps): update dependency conventional-recommended-bump to v6.0.9 (#588)
    • Additional commits viewable in compare view
    Maintainer changes

    This version was pushed to npm by oss-bot, a new releaser for standard-version since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump acorn from 5.7.3 to 5.7.4

    Bump acorn from 5.7.3 to 5.7.4

    Bumps acorn from 5.7.3 to 5.7.4.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • update vue references

    update vue references

    https://github.com/mubaidr/vue2-migration-helper/blob/3ff35a53ccbb1eeabcfacd33dd08a8995eadd178/src/lib/transformers/vueObjectReferences.ts#L5-L6


    This issue was generated by todo based on a TODO comment in 3ff35a53ccbb1eeabcfacd33dd08a8995eadd178. It's been assigned to @mubaidr because they committed the code.
    todo :spiral_notepad: 
    opened by todo[bot] 1
  • update props reference

    update props reference

    https://github.com/mubaidr/vue2-migration-helper/blob/3ff35a53ccbb1eeabcfacd33dd08a8995eadd178/src/lib/transformers/props.ts#L12-L13


    This issue was generated by todo based on a TODO comment in 3ff35a53ccbb1eeabcfacd33dd08a8995eadd178. It's been assigned to @mubaidr because they committed the code.
    todo :spiral_notepad: 
    opened by todo[bot] 1
  • if parent member expression is this then replace the expressions

    if parent member expression is this then replace the expressions

    https://github.com/mubaidr/vue2-migration-helper/blob/94112c503e0c7e171a7ece01820bf005bb33749b/src/lib/transformers/templateRefs.ts#L30-L33


    This issue was generated by todo based on a TODO comment in 94112c503e0c7e171a7ece01820bf005bb33749b. It's been assigned to @mubaidr because they committed the code.
    todo :spiral_notepad: 
    opened by todo[bot] 1
  • replace expression with new expressions

    replace expression with new expressions

    https://github.com/mubaidr/vue2-migration-helper/blob/c1bb958ed440f2dd0e3720f0354a13f508922c85/src/lib/transformers/templateRefs.ts#L30-L35


    This issue was generated by todo based on a TODO comment in c1bb958ed440f2dd0e3720f0354a13f508922c85. It's been assigned to @mubaidr because they committed the code.
    todo :spiral_notepad: 
    opened by todo[bot] 1
  • replacing ast breaks setupMethod, returnStatement references

    replacing ast breaks setupMethod, returnStatement references

    https://github.com/mubaidr/vue2-migration-helper/blob/a2ad1fcc43d77e6e8b4ef52ed0f801d8c3f2592e/src/lib/MigrationHelper.ts#L133-L138


    This issue was generated by todo based on a TODO comment in a2ad1fcc43d77e6e8b4ef52ed0f801d8c3f2592e. It's been assigned to @mubaidr because they committed the code.
    todo :spiral_notepad: 
    opened by todo[bot] 1
  • pass target file

    pass target file

    https://github.com/mubaidr/vue2-migration-helper/blob/7087ecfca43746420dbb4b370b7cdc1ff4ba292f/src/cli/index.ts#L47-L52


    This issue was generated by todo based on a TODO comment in 7087ecfca43746420dbb4b370b7cdc1ff4ba292f. It's been assigned to @mubaidr because they committed the code.
    todo :spiral_notepad: 
    opened by todo[bot] 1
  • update method calls

    update method calls

    https://github.com/mubaidr/vue2-migration-helper/blob/22adcebdd435399c8fe9ccf7597b38c911302375/src/lib/generators/sections/methods.ts#L88-L89


    This issue was generated by todo based on a TODO comment in 22adcebdd435399c8fe9ccf7597b38c911302375. It's been assigned to @mubaidr because they committed the code.
    todo :spiral_notepad: 
    opened by todo[bot] 1
  • Unclear how to use

    Unclear how to use

    Remote: accessing the sandbox results in Request failed with status code 404.

    Local: after installing using npm, the vue CLI does not recognize vue2-migration-helper as a runnable script.

    What is the complete CLI statement necessary to invoke the script?

    Thanks


    Environment Info: ... Binaries: Node: 12.18.3 - C:\Program Files\Tools\nodejs\node.EXE npm: 6.14.8 - C:\Program Files\Tools\nodejs\npm.CMD npmPackages: ... vue: 2.6.11 => 2.6.11 (2.5.17, 2.6.12) ... vue2-migration-helper: ^0.3.8 => 0.3.8 ... npmGlobalPackages: @vue/cli: Not Found

    opened by grosenberg 8
Owner
Muhammad Ubaid Raza
👨🏽‍💻 Full Stack Web Developer 🤲 Open-source lover
Muhammad Ubaid Raza
Vue composition-api composable components. i18n, validation, pagination, fetch, etc. +50 different composables

vue-composable Out-of-the-box ready to use composables ?? TreeShakable ??‍♂️ Fully Typescript ?? Vue 3 and 2 support ?? Vue Devtools support Introduct

Carlos Rodrigues 1k Jan 9, 2023
🕶 Vue Composition API for automatic fetch data when condition has been changed

vue-condition-watcher ?? Introduction Vue Composition API for automatic fetch data when condition has been changed Features ✔ Auto fetch data when con

Willy Hong 42 Dec 5, 2022
Use Vue Composition API Right Now (WIP)

Vue Use Use Vue Composition API Right Now. Note: Currently only Vue.js 2.x is supported. Since Vue.js has released a beta version of 3.0, this library

FE Next 26 Jul 7, 2022
A library for encapsulating asynchronous operations and managing concurrency for Vue and Composition API.

?? vue-concurrency Inspired by ember-concurrency. A library for encapsulating asynchronous operations and managing concurrency for Vue and Composition

Martin Malinda 268 Dec 26, 2022
🍍Automatically Typed, Modular and lightweight Store for Vue using the composition api with DevTools support

??Automatically Typed, Modular and lightweight Store for Vue using the composition api with DevTools support

Eduardo San Martin Morote 9.5k Dec 30, 2022
Automatically imports createElement as h when writing JSX and functional syntax that supports only setup() and template refs that supports setup()

babel-preset-vca-jsx Support for automatic import of createElement as h and setup functional component syntax and setup template refs Feature Automati

lululuffy 73 Aug 24, 2022
A babel plugin that provides jsx syntax for vue3

vue-next-jsx This project has been archived because Vue will have an official version. Vue Next JSX Explorer A babel plugin that provides jsx syntax f

Chunyang Huo 89 Aug 11, 2022
Collection of essential Vue Composition Utilities for Vue 2 and 3

Collection of essential Vue Composition Utilities ?? Features ?? Interactive docs & demos ?? Seamless migration: Works for both Vue 3 and 2 ⚡ Fully tr

VueUse 96 Dec 23, 2022
A Vue composition function that makes infinite scroll a breeze.

vue-use-infinite-scroll Installation npm i -S vue-use-infinite-scroll Usage template <div> <span>{{ errorMessageRef }}</span> <ul> <li

Andrea Simone Costa 110 Nov 12, 2022
Collection of utility composition functions for Vue

Extensive collection of composition functions for Vue

Justin Brooks 89 Nov 26, 2022
Vue Use Utilities build on top of vue-demi & @vue/compostion-api

Vue Use Utilities Vue Use Utilities build on top of vue-demi & @vue/compostion-api. It works both for Vue 2 & 3. ✨ Features ?? Composable Utilities ??

Vue Blocks 28 Dec 12, 2022
A plugin that provides a composable API for giving elements a fixed aspect ratio.

@tailwindcss/aspect-ratio A plugin that provides a composable API for giving elements a fixed aspect ratio. Installation Install the plugin from npm:

Tailwind Labs 758 Dec 26, 2022
Internationalization plugin for Vue.js - fluent-vue is Vue.js integration for Fluent.js

Internationalization plugin for Vue.js - fluent-vue is Vue.js integration for Fluent.js

Ivan Demchuk 164 Dec 28, 2022
🤲 Use Vue 3's Fragment feature in Vue 2 to return multiple root elements

?? Vue 2 fragment directive to return multiple root elements

hiroki osame 180 Dec 22, 2022
The word highlighter library for Vue 2 and Vue 3.

The word highlighter library for Vue 2 and Vue 3.

ryo 122 Jan 3, 2023
Leon L. 4 Nov 8, 2022
JSX for Vue 3 - Babel Plugin JSX for Vue 3.0

JSX for Vue 3 - Babel Plugin JSX for Vue 3.0

vuejs 1.5k Jan 3, 2023
Paystack module for Vue that supports Vue 2 & 3.

Vue-Paystack2 is a Paystack payment gateway integration for Vue which provides Universal support for Vue 2 & 3 Table of Contents ✨ Install ✨ Usage ??

Enoch Chejieh 12 Dec 3, 2022
Vue Json Pretty - A Vue component for rendering JSON data as a tree structure.

Vue Json Pretty A Vue component for rendering JSON data as a tree structure. Now it supports Vue3 at least. If you still use Vue2, see 1.x. English |

Daniel 792 Dec 30, 2022