This Book
- Recommended Resources
- Recommended Books
Installation
- Vue Devtools
- Direct
<script>Include - NPM
- CLI
- Explanation of Different Builds
- Dev Build
- Bower
- AMD Module Loaders
Introduction
- What is Vue.js?
- Getting Started
- Declarative Rendering
- Conditionals and Loops
- Handling User Input
- Composing with Components
- Ready for More?
The Vue Instance
- Creating a Vue Instance
- Data and Methods
- Instance Lifecycle Hooks
- Lifecycle Diagram
Template Syntax
- Interpolations
- Directives
- Shorthands
Computed Properties and Watchers
- Computed Properties
- Watchers
Class and Style Bindings
- Binding HTML Classes
- Binding Inline Styles
Conditional Rendering
v-ifv-showv-ifvsv-showv-ifwithv-for
List Rendering
- Mapping an Array to Elements with
v-for v-forwith an Object- Maintaining State
- Array Change Detection
- Displaying Filtered/Sorted Results
v-forwith a Rangev-foron a<template>v-forwithv-ifv-forwith a Component
Event Handling
- Listening to Events
- Method Event Handlers
- Methods in Inline Handlers
- Event Modifiers
- Key Modifiers
- System Modifier Keys
- Why Listeners in HTML?
Form Input Bindings
- Basic Usage
- Value Bindings
- Modifiers
v-modelwith Components
Components Basics
- Base Example
- Reusing Components
- Organizing Components
- Passing Data to Child Components with Props
- A Single Root Element
- Listening to Child Components Events
- Content Distribution with Slots
- Dynamic Components
- DOM Template Parsing Caveats
Component Registration
- Component Names
- Global Registration
- Local Registration
- Module Systems
Props
- Prop Casing (camelCase vs kebab-case)
- Prop Types
- Passing Static or Dynamic Props
- One-Way Data Flow
- Prop Validation
- Non-Prop Attributes
Custom Events
- Event Names
- Customizing Component
v-model - Binding Native Events to Components
.syncModifier
Slots
- Slot Content
- Compilation Scope
- Fallback Content
- Named Slots
- Scoped Slots
- Dynamic Slot Names
- Named Slots Shorthand
- Other Examples
- Deprecated Syntax
Dynamic & Async Components
keep-alivewith Dynamic Components- Async Components
Handling Edge Cases
- Element & Component Access
- Programmatic Event Listeners
- Circular References
- Alternate Template Definitions
- Controlling Updates
Enter/Leave & List Transitions
- Overview
- Transitioning Single Elements/Components
- Transitions on Initial Render
- Transitioning Between Elements
- Transitioning Between Components
- List Transitions
- Reusable Transitions
- Dynamic Transitions
State Transitions
- Animating State with Watchers
- Dynamic State Transitions
- Organizing Transitions into Components
- Bringing Designs to Life
Mixins
- Basics
- Option Merging
- Global Mixin
- Custom Option Merge Strategies
Custom Directives
- Intro
- Hook Functions
- Directive Hook Arguments
- Function Shorthand
- Object Literals
Render Functions & JSX
- Basics
- Nodes, Trees, and the Virtual DOM
createElementArguments- Replacing Template Features with Plain JavaScript
- JSX
- Functional Components
- Template Compilation
Plugins
- Using a Plugin
- Writing a Plugin
Filters
Single File Components
- Introduction
- Getting Started
Testing
- Introduction
- Unit Testing
- Component Testing
- End-to-End (E2E) Testing
TypeScript Support
- Official Declaration in NPM Packages
- Recommended Configuration
- Development Tooling
- Basic Usage
- Class-Style Vue Components
- Augmenting Types for Use with Plugins
- Annotating Return Types
- Annotating Props
Production Deployment
- Turn on Production Mode
- Pre-Compiling Templates
- Extracting Component CSS
- Tracking Runtime Errors
Routing
- Official Router
- Simple Routing From Scratch
- Integrating 3rd-Party Routers
State Management
- Official Flux-Like Implementation
- Simple State Management from Scratch
Server-Side Rendering
- The Complete SSR Guide
- Nuxt.js
- Quasar Framework SSR + PWA
Security
- Reporting Vulnerabilities
- Rule No.1: Never Use Non-trusted Templates
- What Vue Does to Protect You
- Potential Dangers
- Best Practices
- Backend Coordination
- Server-Side Rendering (SSR)
Reactivity in Depth
- How Changes Are Tracked
- Change Detection Caveats
- Declaring Reactive Properties
- Async Update Queue
Migration from Vue 1.x
- FAQ
- Templates
- Lifecycle Hooks
v-for- Props
- Computed properties
- Built-In Directives
- Custom Directives <sup>simplified</sup>
- Transitions
- Events
- Filters
- Slots
- Special Attributes
- Interpolation
- Reactivity
- DOM-Focused Instance Methods
- Meta Instance Methods
- Instance DOM Options
- Global Config
- Global API
Migration from Vue Router 0.7.x
- Router Initialization
- Route Definitions
- Route Matching
- Links
- Programmatic Navigation
- Router Options: Modes
- Route Options: Misc
- Route Hooks
Migration from Vuex 0.6.x to 1.0
store.watchwith String Property Path <sup>replaced</sup>- Store’s Event Emitter <sup>removed</sup>
- Middlewares <sup>replaced</sup>
