A product's Vue 3 migration: A real life story

This page summarizes the projects mentioned and recommended in the original post on dev.to

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. core

    šŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web. (by vuejs)

    In September 2020, Evan You, creator of the JavaScript library Vue.js, announced the stable release of Vue 3, labelled One Piece. Here at Suade Labs, we watched the announcement live and were very excited about the new features, including performance improvements, the Composition API, and the ability to teleport elements. These new features were exactly what we needed for our imminent projects and the Suade product, so we started getting to work and figuring out how to migrate our application. We could have waited for more dev resources like the Vue 2.6 migration build, but we wanted to start using these new features. So, we created a rough plan and got straight into it! This is how it worked out.

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. vue-cli-plugin-vue-next

    A Vue CLI plugin for trying out vue-next (experimental)

    Finally, our biggest Vue 3 migration issue was the removal of the props sync feature and migrating them to use a v-model prop. Thankfully, we found the Vue Next Plugin which converted code from text.sync=ā€variableā€ to v-model:text=ā€variableā€. This did a lot of the heavy lifting, but we also needed to change how components would interact with these props. Previously there was the ability to be able to change them directly, e.g. this.text = ā€œnew valueā€, however we now needed to migrate this to emit an event of change to the parent element. So, we added a new computed property that could handle a set function:

  4. rfcs

    RFCs for substantial changes / feature additions to Vue core (by vuejs)

    Another change we did as part of the Vue 3 Migration was migrate our use of /deep/ to ::v-deep() with our CSS. Using these deep selectors allows us to create queries in scoped CSS that target child components and elements. This also wasnā€™t a simple ā€˜find and replaceā€™, as v-deep requires an argument of a selector , but /deep/ did not.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • A Beginner's guide: Setting up your first flutter Application

    1 project | dev.to | 27 Mar 2025
  • Show HN: Lspwatch ā€“ Automatic, configurable observability for language servers

    3 projects | news.ycombinator.com | 27 Mar 2025
  • Chainforge

    1 project | news.ycombinator.com | 27 Mar 2025
  • Make Your React App Shareable with URL State Management šŸš€

    1 project | dev.to | 27 Mar 2025
  • Platform Engineering with AWS: What You Need to Know

    1 project | dev.to | 27 Mar 2025

Did you know that TypeScript is
the 1st most popular programming language
based on number of references?