Large Scale Apps with Vue 3 and TypeScript


This book is no longer available for sale.

Large Scale Apps with Vue 3 and TypeScript

Build Large and Scalable front-ends that leverage component isolation, internationalization, localization, a modular Vuex store, Custom Component Libraries, API-client code that easily can switch between mocked data and live data and more.

About the Book

(NOTE: There is a 2nd edition of this book in the work here If you already bought this, reach to me with the same email you used on Leanpub and I will send you a coupon to download the new edition for free)

Build Large and Scalable Vue 3 front-ends with a large organized code base that is easy to expand and maintain using technique like: 

  • Development of UI components in isolation using an API client that can easily serve live data or mocked data
  • Create Custom Component Libraries
  • A modular Vuex store organized into application domains
  • Internationalization and Localization for language translation and number/dates formatting according to a specific culture
  • TypeScript type-checking at development time to decrease run-time bugs or errors
  • Directory structure, file, and code naming conventions
  • Unit tests for models and components
  • Container Components
  • And more

About the Author

Damiano Fusco
Damiano Fusco

Web Developer with 20 years of experience.

Specialties: VueJS, Svelte, React, TypeScript, JavaScript, HTML, SCSS, Microfrontends, and more.

Working as a freelance consultant, after 20 years of employment work. Hire my services to help your company get unstuck from the drawbacks of your current legacy frontend, and start moving forward at much higher speed and quality.

Follow me on GitHub, Twitter, LinkedIn

Personal website:

Table of Contents

  • Preface
    • Thanks
    • Audience
    • Goal
    • Text Conventions
  • Prerequisites
  • Companion Code
  • Chapter 1 - Setting Up The Project With The Vue-Cli
    • Create Project Wizard
    • Chapter 1 Recap
  • Chapter 2 - Your First Component
    • The Items List
    • ItemsList Component Requirements
    • ItemsList Component Code
    • Home View
  • App.vue Updates
    • Chapter 2 Recap
  • Chapter 3 - Data Models and Interfaces
    • Models Directory
    • Interface ItemInterface
    • ItemsList Component
    • Home View
    • Chapter 3 Recap
  • Chapter 4 - Adding Events To the Items Component
    • ItemsList Component
    • Chapter 4 Recap
  • Chapter 5 - Intro to Unit Testing While Refactoring a Bit
    • ItemComponent
    • ItemComponent Unit Tests
    • ItemsList component
    • Home.vue updates
    • Chapter 5 Recap
  • Chapter 6 - Introducing Vuex
    • Vuex Overview
    • Main Vuex Store (file: store/index.ts)
    • Interface ItemsStateInterface
    • Back to the file: store/index.ts
    • Home View
    • Web Browser
    • ItemsList.component.vue
    • Home.vue
    • Web Browser
    • Loader Component
    • ItemsList Component
    • ItemsList Component - enhancing Item click handler
    • Vuex Store: selectItem Mutation
    • Vuex Store: selectItem Action
    • Chapter 6 Recap
  • Chapter 7 - Api Client
    • API Client Overview
    • Domains
    • The Main ApiClient
    • Items Api Client
    • Mock and Live Api Clients
    • Mock Api Client
    • Live Api Client
    • Api Client Factory
    • Vuex Store Instance updates
    • Alternatives
    • Chapter 7 Recap
  • Chapter 8 - Enhance the Api Client
    • HttpClient Interfaces and Models
    • HttpClient Unit Tests
    • ItemsApiClientModel Update
    • Chapter 8 Recap
  • Chapter 9 - Modularize the Vuex Store
    • Current Vuex Store instance (src/store/index.ts)
    • Store and State Models
    • Store Instance
    • The ugly module/mutation string interpolation syntax
    • Summary
    • Chapter 9 Recap
  • Chapter 10 - Localization and Internationalization - Language Localization - Part 1
    • Plugin: vue-i18n
    • Chapter 10 Recap
  • Chapter 11 - Localization and Internationalization - Language Localization - Part 2
    • The LocaleSelector Component
    • Vuex State Module for Locales
    • LocalesStateInterface implementation
    • LocaleSelector.component.vue
    • LocaleFlagRadio.component.vue
    • File src/main.ts
    • File src/App.vue
    • Browser
    • Chapter 11 Recap
  • Chapter 12 - Localization and Internationalization - Language Localization - Part 3
    • Localize the Main Navigation
    • Localize the Items Component
    • Chapter 12 Recap
  • Chapter 13 - Localization and Internationalization - Number and DateTime Formats
    • JSON Locales Files Updates
    • Chapter 13 Recap
  • Chapter 14 - App Configuration
    • src/config
    • tsconfig.json
    • src/config/index.ts
    • Unit Tests against Config
    • Chapter 14 Recap
  • Chapter 15 - Using CSS/SASS/SCSS Libraries
    • SCSS Library
    • Flag-Icons Plugin Code update
    • MyAppScss Plugin
    • ThemeSelector component
    • Chapter 15 Recap
  • Chapter 16 - Creating Stand-Alone Components
    • Remove the existing ThemeSelector code
    • Create the Components-Standalone directory
    • Create the ThemeSelector directory
    • Create the ThemeSelector models
    • Create the ThemeSelector Custom Store Models
    • Constant keys for localStorage
    • Create the ThemeSelector Component
    • Modify the App.vue code
    • Chapter 16 Recap
  • Chapter 17 - Packaging Component Libraries for Distribution
    • Updates to my-project
    • Chapter 17 Recap
  • Chapter 18 - Intro to Primitives
    • Atomic Design and Similar Approaches
    • Conventions
    • General Strategies
    • TailwindCSS
    • Text Elements
    • Primitives View
    • Chapter 18 Recap
  • Chapter 19 - More Primitives
    • Button Elements
    • Primitives View - update
    • Toggle/Checkbox Elements
    • Primitives View - one more update
    • Chapter 19 Recap
  • Chapter 20 - Higher-level components
    • Item Component - updates
    • ItemsList Component - updates
    • Summary
    • Chapter 20 Recap
  • Chapter 21 - Dynamic Components
    • Base Card Element
    • BaseWidget component
    • CustomersWidget Component
    • OrdersWidget Component
    • ItemsListWidget Component
    • WidgetsCatalog.ts File
    • WidgetsContainer Component, Models and State
    • Widgets Playground View
    • Browser
    • Summary
  • The Vue.config.js File
  • Naming Conventions
    • Coding Standards
  • Resources
    • Websites
    • Blogs
    • Books
  • Notes

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub