Upgrade to Pro — share decks privately, control downloads, hide ads and more …

An Angular Point of Vue

Avatar for Nico König Nico König
February 06, 2019

An Angular Point of Vue

Avatar for Nico König

Nico König

February 06, 2019
Tweet

More Decks by Nico König

Other Decks in Programming

Transcript

  1. • Angular • Since December 2015 • Projects from 5

    to 40 developers • Workshops & Bootcamps • Vue • Since May 2018 • Project with 6 developers Angular, Vue and myself
  2. A brief history of angular • AngularJS first release 2010

    • Angular 2.0.0 September 2016
 Angular 4.0.0 March 2017
 Angular 5.0.0 November 2017
 Angular 6.0.0 May 2018
 Angular 7.0.0 October 2018 • Major release every 6 months
  3. A brief history of Vue • Evan You used AngularJS

    at Google Creative Labs, but wanted to build something more lightweight • Evan You built Vue.js in his free time • Late 2013 - Private development of Vue.js
 Feb 2014 - Public Release als Open Source
 Oct 2015 - 1.0
 Feb 2016 - Full-time 
 Sep 2016 - Version 2.0 • Vue 3.0 announced 2019 (maybe)
  4. Quote from Evan You “I personally don’t want to be

    responsible for everything. I want the project to be able to evolve, even if someday I stop working on it. So part of my work right now is to make that happen” https://blog.hackages.io/https-blog-hackages-io-evanyoubhack2017-cc5559806157
  5. Year of release 2016 2014 NPM Downloads 90,000,000 34,000,000 Github

    Stars 44,000 125,000 Github Forks 11,000 18,000 Github Commits 12,800 2,876 Github Contributors 835 254
  6. Vue CLI • Project setup • Prototyping • Plugin system

    • Build (app, lib, web component) • UI
  7. Angular CLI • Project setup • Scaffolding • Schematics (=

    Plugins) • Build https://cli.angular.io/
  8. NX

  9. ✅ or ❌ Part of framework* 
 * package maintained

    by the frameworks core team 
 & contained in the GitHub organization
 
 name of package(s)
 
 additional resource or list or whatever
  10. Build components and render data ✅ Part of vue
 vue

    ✅ Part of angular
 @angular/core
  11. Build components and render data ✅ Part of vue
 vue

    ✅ Part of angular
 @angular/core
  12. Build components and render data ✅ Part of vue
 vue

    ✅ Part of angular
 @angular/core
  13. Build components and render data ✅ Part of vue
 vue

    ✅ Part of angular
 @angular/core
  14. Routing (aka mapping of components to urls) ✅ Part of

    vue
 vue-router ✅ Part of angular
 @angular/router
  15. Routing (aka mapping of components to urls) ✅ Part of

    vue
 vue-router ✅ Part of angular
 @angular/router
  16. Routing (aka mapping of components to urls) ✅ Part of

    vue
 vue-router ✅ Part of angular
 @angular/router
  17. Routing (aka mapping of components to urls) ✅ Part of

    vue
 vue-router ✅ Part of angular
 @angular/router
  18. Fetch data from backend ❌ Not part of vue
 i.e.

    axios or vue-resource
 https://github.com/vuejs/awesome-vue#http-requests ✅ Part of angular
 @angular/common
  19. Fetch data from backend ❌ Not part of vue
 i.e.

    axios or vue-resource
 https://github.com/vuejs/awesome-vue#http-requests ✅ Part of angular
 @angular/common
  20. Fetch data from backend ❌ Not part of vue
 i.e.

    axios or vue-resource
 https://github.com/vuejs/awesome-vue#http-requests ✅ Part of angular
 @angular/common
  21. Fetch data from backend ❌ Not part of vue
 i.e.

    axios or vue-resource
 https://github.com/vuejs/awesome-vue#http-requests ✅ Part of angular
 @angular/common
  22. Manage state ✅ Part of vue
 vuex
 https://github.com/vuejs/vuex ✅ Part

    of angular, but depends on you
 @angular/core or @ngrx/platform
  23. Manage state ✅ Part of vue
 vuex
 https://github.com/vuejs/vuex ✅ Part

    of angular, but depends on you
 @angular/core or @ngrx/platform
  24. Manage state ✅ Part of vue
 vuex
 https://github.com/vuejs/vuex ✅ Part

    of angular, but depends on you
 @angular/core or @ngrx/platform
  25. Manage state ✅ Part of vue
 vuex
 https://github.com/vuejs/vuex ✅ Part

    of angular, but depends on you
 @angular/core or @ngrx/platform
  26. Form handling and validation ✅ Form handling is part of

    vue
 ❌ Form validation is part of vue
 vue or vee-validate
 https://github.com/vuejs/awesome-vue#validation ✅ Part of angular
 @angular/core or @ngrx/platform
  27. Form handling and validation ✅ Form handling is part of

    vue
 ❌ Form validation is part of vue
 vue or vee-validate
 https://github.com/vuejs/awesome-vue#validation ✅ Part of angular
 @angular/core or @ngrx/platform
  28. Form handling and validation ✅ Form handling is part of

    vue
 ❌ Form validation is part of vue
 vue or vee-validate
 https://github.com/vuejs/awesome-vue#validation ✅ Part of angular
 @angular/core or @ngrx/platform
  29. Form handling and validation ✅ Form handling is part of

    vue
 ❌ Form validation is part of vue
 vue or vee-validate
 https://github.com/vuejs/awesome-vue#validation ✅ Part of angular
 @angular/core or @ngrx/platform
  30. i18n ❌ Not part of vue (but maintained by a

    core member)
 vue-i18n
 https://github.com/vuejs/awesome-vue#i18n ✅ Part of angular, but there are better alternatives
 @angular/core or @ngx-translate/core
  31. i18n ❌ Not part of vue (but maintained by a

    core member)
 vue-i18n
 https://github.com/vuejs/awesome-vue#i18n ✅ Part of angular, but there are better alternatives
 @angular/core or @ngx-translate/core
  32. i18n ❌ Not part of vue (but maintained by a

    core member)
 vue-i18n
 https://github.com/vuejs/awesome-vue#i18n ✅ Part of angular, but there are better alternatives
 @angular/core or @ngx-translate/core
  33. i18n ❌ Not part of vue (but maintained by a

    core member)
 vue-i18n
 https://github.com/vuejs/awesome-vue#i18n ✅ Part of angular, but there are better alternatives
 @angular/core or @ngx-translate/core
  34. Core ✅ ✅ Routing ✅ ✅ HTTP ✅ ❌ Form

    handling ✅ ✅ Form validation ✅ ❌ State handling ✅ ✅ Dependency injection ✅ ✅ i18n ✅ ❌ Animations ✅ ✅
  35. Vue Style Guide „This is the official style guide for

    Vue-specific code. If you use Vue in a project, it’s a great reference to avoid errors, bikeshedding, and anti- patterns. However, we don’t believe that any style guide is ideal for all teams or projects, so mindful deviations are encouraged based on past experience, the surrounding tech stack, and personal values.“ https://vuejs.org/v2/style-guide/
  36. Thinks to consider when learning Vue • No need for

    additional learning of other libraries or tooling (in the first place)
  37. Quote from Evan You „React kind of attracts a lot

    of functional oriented programmers. Vue attracts a lot of people who’d prefer the more classic HTML, CSS & JavaScript model of development. And Angular attracts a lot of people coming from a Java or C# enterprise background.“ https://blog.hackages.io/https-blog-hackages-io-evanyoubhack2017-cc5559806157
  38. Too long, didn’t listen André Staltz publishes „The introduction to

    Reactive Programming you've been missing“ on GitHub.
  39. Vue in a nutshell • Developed and maintained by the

    community • Not opinionated • Small core library for minimal setup (components, rendering, etc.) • Large eco system of plugins and libs • If you know HTML, CSS & JavaScript - you are ready to go • Use VUE CLI for project setup, get inspiration from boilerplates to extend this setup
  40. Angular in a nutshell • All in one platform developed

    by google • Totally opinionated • Without learning TypeScript and RxJS, your Angular project will fail • Regular releases (every ~6 months) • Sophisticated patterns for large scale enterprise projects • Scaffolding using the Angular CLI is pure joy