vue-class-component VS composition-api

Compare vue-class-component vs composition-api and see what are their differences.

vue-class-component

ES / TypeScript decorator for class-style Vue components. (by vuejs)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
vue-class-component composition-api
13 20
5,808 4,184
-0.1% 0.1%
2.9 3.9
6 months ago 8 months ago
TypeScript TypeScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

vue-class-component

Posts with mentions or reviews of vue-class-component. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-11.
  • The Rear-Vue Mirror: My Open-Source Origin Story
    9 projects | dev.to | 11 Apr 2023
    This was a good change. Evan has always been extremely good at putting his finger on the pulse of the frontend community. If there's a feature or paradigm that people love that would fit in Vue, Evan will incorporate it. Over the years, Vue has implemented (and sometimes later deprecated) dependency injection, JSX support, custom elements, Angular-style class components, Svelte-style ref sugar, and now Solid-inspired compiler optimizations. They even changed the order of a Vue file to match that of Svelte: first the script, then the template.
  • Is it possible to use Vue 3 components in a Vue 2 app?
    1 project | /r/vuejs | 7 Mar 2023
    That is the whole point. Just check this code. If it was written in a basic vue 2 syntax style it wouldn't be a probrem at all :D So I am looking for a workoround to reuse either a component, or the whole module(page). Some trick which won't require a refactoring of a large app.
  • React Veterans: Have you gotten into Vue and what are your thoughts?
    1 project | /r/webdev | 9 Oct 2022
    The docs are not wrong perse because they distance themself from this package: https://github.com/vuejs/vue-class-component But at the time they recommended this package for best ts experience in vue 2. YOu can see that Evan's account is the second biggest contributor.
  • Vue + TS without class component ? No way!
    3 projects | dev.to | 15 Sep 2022
    Vue(TS) is abandoning vue-class-component, preferring to ask developers to use the Composition API. See https://github.com/vuejs/vue-class-component/issues/569
  • A vue-class-component alternative one in vue3.
    2 projects | /r/vuejs | 7 Jun 2022
    Due to `vue-class-component` is [deprecated in vue3](https://github.com/vuejs/vue-class-component/issues/569). I built a alternative package to do that with many features.
  • Support for vue-class-component going forward
    1 project | /r/vuejs | 19 Apr 2022
    This topic has come up a few times, but I'm hoping that at some point there can be some official guidance from the Vue team on vue-class-components.
  • Trying to learn vue3 (class style component)+ typescript + pinia
    1 project | /r/vuejs | 7 Mar 2022
    According to the Github commit history, the last commit was on 15 Dec 2020. Also, in this conversation, it's saying this library is not maintained anymore, that's why it doesn't work with Vue 3 at all. I did switch from Vue 2 with class style component to Vue 3 since last May. I also switch from Vuex4 to Pinia since last December. I don't have any big issue regarding pass props through different components or using Pinia. The best way to understand how it works is checking Vue 3 and Pinia official document.
  • Vue 3 production-ready analysis
    11 projects | /r/vuejs | 25 Jan 2022
    I'm particularly a little salty about the situation of vue-class-component. This is an officially supported vue library that thousands of people use (including myself), and it has been left to die on the vine with regard to Vue3. It has been in the same RC state for over a year, with no communication or support as to what is happening.
  • Thoughts about the state of Vue & the 2/3 transition
    3 projects | /r/vuejs | 21 Jan 2022
    3) Previously officially supported projects are being essentially abandoned. Vue Cli has been waiting for V5 for the past year, with no indication of release date, and now is in "maintenance mode". Vue Class Component has similarly been waiting for an update for over a year, and still does not have an official release that supports Vue3.
  • Objects and v-model in Vue3
    2 projects | dev.to | 30 Nov 2021
    When I was using Vue2 along with vue-class-component and vue-property-decorator it was easy to synchronize v-models between components simply using @ModelSync(). When Vue 3 came out with its Composition API another way was needed to achieve the same result as if Class Component was used.

composition-api

Posts with mentions or reviews of composition-api. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-10-14.
  • Getting Started with VueJS: Introduction to Vue 3
    3 projects | dev.to | 14 Oct 2022
    Composition API (now built-in): Composition API is a built-in feature of Vue 3 and is currently available to Vue 2 through the officially maintained @vue/composition-api plugin. In Vue 3, it's mainly used together with the syntax in single-report additives. Here is a basic instance of a issue using Composition API:
  • How to Build a Quasar QR Code Scanner with Capacitor
    4 projects | dev.to | 1 Sep 2022
    √ What would you like to build? » App with Quasar CLI, let's go! √ Project folder: ... quasar-qrcode-scanner √ Pick Quasar version: » Quasar v1 (Vue 2) √ Pick script type: » Typescript √ Package name: ... quasar-qrcode-scanner √ Project product name: (must start with letter if building mobile apps) ... Quasar QR Code Scanner √ Project description: ... A Quasar Project √ Author: ... √ Pick a Vue component style: » Composition API (recommended) (https://github.com/vuejs/composition-api) √ Pick your CSS preprocessor: » Sass with SCSS syntax √ Pick a Quasar components & directives import strategy: (can be changed later) » * Auto-import in-use Quasar components & directives - also treeshakes Quasar; minimum bundle size √ Check the features needed for your project: » ESLint √ Pick an ESLint preset: » Prettier
  • VueJs - Introduction à la Composition Api
    1 project | dev.to | 25 May 2022
  • Is the back port of the Composition API stable and usable in production?
    1 project | /r/vuejs | 20 May 2022
    I'd just found out about this back port of the Composition API to Vue 2 (https://github.com/vuejs/composition-api). What's your experience with that? Is it stable enough to use in a production project with +1000 users? Or is more experimental?
  • Frontend frameworks
    2 projects | /r/javahelp | 31 Mar 2022
    While Vue 3 has had a paradigma change by switching to the Composition API as the primary API, you still can use the "old" Options API which stays mostly unchanged to Vue 2. And vice-versa Vue 2 actually supports most of the Composition API when you include an additional plugin: https://github.com/vuejs/composition-api
  • import composition api in vue with vuex
    1 project | /r/vuejs | 31 Jan 2022
    Is it even worth it to use https://github.com/vuejs/composition-api or should i migrate to vue 3. I'm only using vue 2 so i can use the vuetify calendar component.
  • How to use Composition API instead of Vuex in Vue3 and also in Vue2.
    1 project | dev.to | 25 Jan 2022
    Npm package: @vue/composition-api
  • Why I Love Vue 3's Composition API
    3 projects | dev.to | 2 Nov 2021
    If you can’t migrate to Vue 3 today, then you can still use the Composition API already. You can do this by installing the official Composition API Vue 2 Plugin.
  • For Vue 2.x: vue-class-component or @vue/composition-api?
    2 projects | /r/vuejs | 28 Oct 2021
    I see that the @vue/composition-api also admits to having some performance overhead when used with Vue 2. And it appears to have quite a list of its own gotchas, judging from the README.
  • Newly hired and the company is using Vue 2, where do I start learning?
    1 project | /r/vuejs | 20 Oct 2021
    For what it's worth most of Vue 3's features can be backported to Vue 2 apps by including the @vue/composition-api package. I agree with the other comment, the v2 docs will get you very far.

What are some alternatives?

When comparing vue-class-component and composition-api you can also consider the following projects:

vue-facing-decorator - Vue typescript class component decorators

vue-property-decorator - Vue.js and Property Decorator

pinia - 🍍 Intuitive, type safe, light and flexible Store for Vue using the composition api with DevTools support

vite - Next generation frontend tooling. It's fast!

Alpine.js - A rugged, minimal framework for composing JavaScript behavior in your markup.

create-vue - 🛠️ The recommended way to start a Vite-powered Vue project

Quasar-QR-Code-Scanner - Quasar QR Code Scanner

vitesse - 🏕 Opinionated Vite + Vue Starter Template

vueuse - Collection of essential Vue Composition Utilities for Vue 2 and 3

core - 🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

vuex - 🗃️ Centralized State Management for Vue.js.