VueConf US


1. State of Vue

Evan You

2. How We Do Vue At GitLab

Jacob Schatz

3. Vue in Motion

Rachel Nabors

4. Testing Vue apps

Edd Yerburgh

5. Serverless Functions and Vue.js

Sarah Drasner

6. vue-rx

John Lindquist

7. Create an Engaging Native Mobile App with Vue and NativeScript

Jen Looper
Notify me when new talks are available.

State of Vue

State of Vue

Evan You

Evan You is the creator of the Vue project. In his VueConf talk he covers the growth of Vue, recent project releases, the maturing eco-system, the Vue-Loader rewrite, Vue CLI 3, upcoming releases of Vue.js, and initiatives to improve the stability and evolution of the library.

The Growth of Vue

Vue has seen a tremendous amount of growth recently across Github, NPM, and the Vue DevTools plugin. It was the single most starred repo on Github in 2017.

He mentions a few recent official releases:

  • eslint-plugin-vue 4.0 - The official ESLint plugin which is able to catch syntax errors now inside single file Vue components.
  • @vue/test-utils 1.0-beta - Established the standard for testing Vue components.
  • vue-devtools - Lots of new features including the ability to edit state.
  • Official Vue News - Covering the latest news in the Vue Ecosystem.

Vue has a maturing eco-system, with many projects now production ready with 1.0 releases such as Nuxt, Vutify, and NativeScript Vue.

Vue-Loader Rewrite

Vue-Loader is the webpack loader that transforms Vue single file components into different parts: template, script, and style. The original implementation was a hack, chaining all the loaders together, which contained some complexity. With a Vue-Loader rewrite, the new architecture solves this by appending a resource loader to each request.

A new library was extracted during the refactor a low level utility for compiling Vue SFCs in more than just webpack (Rollup, Jest, Parcel), called @vue/component-compiler-utils.

Vue CLI 3

Evan speaks about the new version of @vue/cli that has many improvements.

Problems with Vue CLI 2

  • Templates are not upgradable
  • Exposed configuration are intimidating and difficult to understand
  • Template maintenance difficulty with interweaving features
  • Forked templates need to constantly sync with upstream

Goals for the New Version

  • Zero config by default
  • Additional feature are shipped as built-in plugins
  • Everything should be configurable without ejection
  • Everything that isn’t build-in should also be implementable as a plugin

In the talk he walks through a demo of the new CLI, showing how you can pick the features needed for your project:

Upcoming Vue.js Releases

There are two branches of Vue.js core that are being worked on, along with a new version of Vuex.

2.6 Features

  • Contains ECMAScript Modules browser build
  • Better async error handling
    • Handle Promises returned from lifecycle hooks
    • $catch method for manually sending async errors to errorHandler
  • Better warning output (line numbers and codeframes!)
  • v-for iterator support

2.6-next Features

  • Proxy-based reactivity system
  • Upgrade codebase using latest ES Features
  • API remains the same
  • Both versions maintained in parallel

Vuex Features

  • Simplify API with async/await
  • Potentially eliminating the separation of actions & mutations
  • New scoped-slots based usage pattern

Stability and Evolution

Evan thinks it’s is important for the future that more people contribute to Vue, and so there are a few initiatives to help this. He’s actively working to improve the governance modal, and will soon publish an RFC process. He also is creating a more predictable release schedule between major, minor and patch releases, and a clearer definition of release channels between stable, beta, nightly, and LTS.