Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Vue.js 3 Design Patterns and Best Practices

You're reading from   Vue.js 3 Design Patterns and Best Practices Develop scalable and robust applications with Vite, Pinia, and Vue Router

Arrow left icon
Product type Paperback
Published in May 2023
Publisher Packt
ISBN-13 9781803238074
Length 296 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Pablo David Garaguso Pablo David Garaguso
Author Profile Icon Pablo David Garaguso
Pablo David Garaguso
Arrow right icon
View More author details
Toc

Table of Contents (16) Chapters Close

Preface 1. Chapter 1: The Vue 3 Framework 2. Chapter 2: Software Design Principles and Patterns FREE CHAPTER 3. Chapter 3: Setting Up a Working Project 4. Chapter 4: User Interface Composition with Components 5. Chapter 5: Single-Page Applications 6. Chapter 6: Progressive Web Applications 7. Chapter 7: Data Flow Management 8. Chapter 8: Multithreading with Web Workers 9. Chapter 9: Testing and Source Control 10. Chapter 10: Deploying Your Application 11. Chapter 11: Bonus Chapter - UX Patterns 12. Final words 13. Index 14. Other Books You May Enjoy Appendix: Migrating from Vue 2

The data property is now always a function

In Vue 2 applications, there is a discrepancy in the data attribute. The root component has a property that is directly a reactive definition, while all other components need to provide a function that returns an object as the data property. This created an inconsistency in the creation of components. This issue has been resolved in Vue 3, so now all components are treated equally, meaning the data attribute always has to be a function that returns an object whose members will be reactive properties.

Here is an example of the root component in main.js:

createApp({
    data(){return {...}}
})

And then in all other components, you have the following:

export default {
    data(){return {...}}
}

Notice that for these examples, we are using the Options API for clarity. When using the script setup syntax, you do not need to declare a data attribute.

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €18.99/month. Cancel anytime