Kurs om
Vue.js

Kurs om hur du bygger moderna SPA webb-applikationer med Vue 3

Vue är ett kolossalt flexibelt ramverk för att bygga moderna webb-applikationer. Med Vue kan du använda såväl klassisk som modern SPA (Single Page App) webb-arkitektur. Ett Vue system designas som en sammansättning av komponenter, vilka kan fungera som navigerbara logiska sidor eller som återanvändbara byggblock inom logiska sidor.

Den här kursen bygger på Vue version 3 och primärt på Composition API, vilket är vår övertygelse är klart bättre än det tidigare Options API.

Snabbfakta

Namn
Vue.js
Längd
4 dagar
Nivå
Beginner
Målgrupp
Web-apps programmerare
Förkunskaper
God erfarenhet av att programmera i JavaScript och HTML/CSS
Programvara & Verktyg
  • Node.js && NPM && NPX
  • Vite
  • MS Visual Code || JetBrains IntelliJ IDEA
  • Chrome || Firefox || Edge

Detta får du lära dig på kursen

Här är ett sammandrag i punktform av vad du får lära dig på kursen. Eftersom kursmaterialet är författat på engelska, så återger vi sammandraget också på engelska.

  • Know how to use and utilize SFC (Single File Components)
  • Understand best practices of how to differentiate page, panel and widget components
  • Know how to write parameterized page navigation
  • Know how to communicate with a REST-WS back-end server

Kursdatum

Här ser du vilka kursdatum som är tillgängliga. Klicka på en av datumknapparna för att anmäla dig till ett kurstillfälle. På kursen pratar läraren svenska, medan vårt kursmaterial alltid är författat på engelska.

Missa inte vår samfaktureringsrabatt! Är ni fler personer från samma företag/organisation som går på samma kurs, rabatteras tillkommande personer med 25%. Ni anmäler er till kursen en och en, men uppger samma företag, så ordnar vi resten. Samtliga deltagare från samma företag ingår på samma faktura, den första till fullt pris och resterande till rabatterat pris.

Klassrum

Du sitter bekvämt i ett av våra klassrum, vilka finns centralt placerade i Stockholms innerstad.

I priset ingår tryckt kursmaterial (och som PDF), samt kaffe/te med smörgås på förmiddagen och kaffe/te med bulle på eftermiddagen.

Pris: 22 000 kr + moms

Fjärrkurs

Du sitter bekvämt framför datorn och deltar i kursen via internet. Vi använder programvaran Zoom för alla våra fjärrkurser.

I priset ingår kursmaterial som PDF.

Pris: 18 000 kr + moms

Företagsinternt

Om ni är tre eller fler personer från samma företag eller organisation, kan ni beställa en företagsanpassad kurs. Då håller vi kursen på ett datum som passar er. Antingen på plats i era lokaler eller som en fjärrkurs. Vi kan också hålla den muntliga framställningen på engelska.

Klicka på knappen nedan för att be om en offert.

Företagsanpassad Kurs

Kursinnehåll

Eftersom kursmaterialet är författat på engelska, så återger vi innehållet också på engelska.

Vue.js Overview

  • Why Vue.js was invented
  • Evan You
  • Release history
  • Vue components

Part 1 - Preparation

We first discuss som topics that are pre-requisites for the course, to ensure all course participants has a good starting point.

Highlights of Modern JavaScript

  • Lambda expressions
  • Async functions
  • Using the Object object
  • The spread operator
  • Array and object destructuring
  • Classes
  • Getters and setters
  • Static members
  • Subclasses
  • Modules
  • Export and import

ES Modules

  • What is ESM
  • ESM syntax
  • Export forms
  • Import forms
  • Path forms
  • ESM in browsers

Using NPM and NPX

  • Using NPM
  • Installing a NPM package
  • Dependencies
  • Global (script) packages
  • Using NPX
  • Alternatives to NPM

What is SPA (Single Page App)

  • Classic web architecture
  • Browser DOM
  • Page navigation
  • AJAX powered web app
  • Partial HTTP transactions
  • SPA web architecture
  • Page components
  • Navigation within an SPA
  • SPA deployment architecture

Part 2 - Kickstart

How to build a Vue app step by step.

Embedded Vue

Instructions of how to build your first Vue app using CDN links.

Vue Basics

  • Need a bundler
  • Creating a Vue project using Vite
  • Understanding SFC - Single File Component
  • Understanding the difference between Options and Compositions API
  • Using pre-processing languages

The SFC Version

Instructions of how to step by step build a multi widget SFC app.

Part 3 - The Details

Template Syntax

  • Text interpolation
  • Handlebar syntax
  • JavaScript expressions only
  • Prevent expression evaluation
  • Injecting HTML
  • Binding attributes
  • v-bind
  • Simplified syntax
  • Dealing with events
  • Modifiers
  • Formatting functions

Reactivity

  • Why do we need reactive?
  • Reactive objects
  • Restrictions
  • Using ref()
  • reactive() vs. ref()
  • Understanding <script setup>

Directives

  • What is a directive?
  • Conditional rendering
  • v-if, v-else-if, v-else
  • v-show
  • Usage of the <template> tag
  • List rendering
  • v-for over an array
  • v-for over an object
  • Usage of :key
  • Composite iteration
  • How to combine v-if with v-for

Form Field Value Bindings

  • How to bind a reactive variable to a form field
  • Using v-model
  • Text modifiers
  • Special handling for date fields
  • Working with checkboxes
  • Working with radio buttons
  • Working with <select> fields

Components

  • Local registration
  • Global registration
  • Declaring inputs: props
  • Props typing
  • Props requirements
  • Props validation
  • Passing values to props
  • Declaring outputs: emits/events
  • Event validation
  • Event modifiers
  • Key-event modifiers
  • Fall-through attributes

Life-Cycle Hooks

  • What is a hook?
  • Mount hooks
  • Other life-cycle hooks

Computed Properties

  • What is computed property
  • How to create a computed property
  • Computer property with getter and setter

Watched Properties

  • What is a watcher
  • How to create and use a watcher
  • Understanding watch() vs. watchEffects()

Using Slots

  • Why do we need slots?
  • Using a single slot
  • Example Twitter Bootstrap Card widget
  • Using named slots
  • Using <Teleport>

Part 4 - Routing

The core essence of SPA is routing; i.e. how to provide the illusion of navigating to different logical pages, but still just restructuring the DOM tree.

Basic Routing

  • What is routing?
  • Understanding page components
  • The minimum needed for a routing Vue app
  • Importing the Router
  • Defining routes
  • Routed page layout
  • Navigation links

More about Routing

  • Access to the router and the current route
  • Meta properties
  • Programmatic navigation
  • Named routes
  • Redirects
  • Not-found route (catch-all)
  • Lazy-loaded page components
  • Parameterized routes
  • Route props
  • Nested routes (child routes)

Guarded Navigation

  • Understanding navigation gueards
  • Guard forms
  • Global guards
  • Single route guards
  • Page component guards

Part 5 - Production

Aspects when rolling out to production.

Build

  • Development vs. production
  • Building for production
  • Build configuration
  • Dealing with assets
  • Conditional build
  • Using .env files
  • Setting build mode
  • Reading configuration parameters within the app
  • Tracking run-time errors

Deploy

  • Server configuration
  • Non-root context path

Server-Side App

  • Understand the limitation of SPA
  • Understand how to mitigate slow boot time
  • Strategies for server-side rendering
  • Brief about PWA

Part 6 - Libraries

An overview of some useful Vue libraries.

Pinia

  • What is state management
  • Understanding Pinia
  • Concepts
  • How to create a Pinia based Vue 3 app using Vite
  • State
  • Actions
  • Getters

Vue i18n

  • What is i18n?
  • Overview of features
  • Sample usage
  • Key substitution
  • How to change language

Vuetify

  • What is Vuetify?
  • Look and feel
  • Components
  • Usage