a comparison of the frontend javascript gui frameworks
play

A Comparison of the Frontend JavaScript GUI Frameworks Angular, - PowerPoint PPT Presentation

A Comparison of the Frontend JavaScript GUI Frameworks Angular, React, and Vue 1 History of Frontend GUIs 2 History of Frontend GUIs JavaScript Introduced in 1995 Standardized in 1997 by ECMA DOM Manipulations Plugins


  1. A Comparison of the Frontend JavaScript GUI Frameworks Angular, React, and Vue � 1

  2. History of Frontend GUIs � 2

  3. History of Frontend GUIs • JavaScript Introduced in 1995 • Standardized in 1997 by ECMA • DOM Manipulations • Plugins • jQuery in 2006 by John Resig � 3

  4. Component-Based Web Design � 4

  5. � 5

  6. � 6

  7. Component-Based Web Design • Brad Frost in 2013: „Atomic Design“ • Improved Stability • Separation of Concerns • Reusability • Cleaner Design • Predictability � 7

  8. Framework Overview � 8

  9. Angular • Mi š ko Hevery in 2009 • „Google Feedback“ • Angular 2 in 2016 • TypeScript • Two Separate Documentations • High Modularity � 9

  10. Angular <!-- greeter.component.html --> < h1 class="greeting">{{ this.name }}</ h1 > // greeter.component.ts import { Component, Input } from '@angular/core'; import template from './greeter.component.html' @Component ({ selector: 'greeter', template: template }) export class Greeter { @Input () name: string; } � 10

  11. React • Jordan Walke in 2011 • Facebook Newsfeed • Instagram • Open Sourced in 2013 • JSX • Data Management � 11

  12. React // greeter.jsx import React from 'react'; import ReactDOM from 'react-dom'; class Greeter extends React.Component { render () { return ( < h1 className="greeting"> Hello, {this.props.name} </ h1 > ) } } export default Greeter; � 12

  13. Vue • Evan You in 2014 • „Improved Angular“ • Single-File Components • Proprietary Templating Language • Scoped CSS • Progressive Frontend Framework � 13

  14. Vue <!-- greeter.vue --> <template> < h1 class='greeting'>Hello, {{ name }}</ h1 > </template> <script> export default { props: ['name'] } </script> <style scoped> h1 .greeting { text-decoration: underline; } </style> � 14

  15. Virtual DOM • DOM Manipulations Expensive • Additional Data Structure • Minimal Change-Sets • Not Necessarily More Performant • Implemented by React and Vue � 15

  16. ToDo List Application � 16

  17. � 17

  18. � 18

  19. � 19

  20. � 20

  21. DEMO � 21

  22. ToDo List Application • Getting to Know Each Framework • Test Frameworks under „Real-World“ Conditions • Consists of 4 „Pages“ • Reference Implementation • Implementation Order: Vue, React, Angular � 22

  23. Results � 23

  24. Rendering Angular React Vue ✓ ✓ ✓ Component-Based Rendering Service Worker Virtual DOM Virtual DOM Technique Container ✓ ✓ ✓ Components ✓ ✓ Directives ✗ � 24

  25. Dynamic Content Angular React Vue ✓ ✓ ✓ Data Binding ✓ ✓ Two-Way Bindings ✗ Conditional Directives JavaScript Directives Rendering Event Handlers Directives JavaScript Directives Message Passing Bottom-Up Top-Down Bottom-Up � 25

  26. Routing Angular React Vue ✓ ✓ Routing Module Third Party ✓ ✓ ✓ Hash-Based ✓ ✓ ✓ History pushState ✓ ✓ ✓ Dynamic Segments ✓ ✓ ✓ Nested Routes � 26

  27. Documentation Angular React Vue Getting Started ✓ ✓ ✓ Guide User Guides Extensive Basics Basics ✓ ✓ ✓ API Documentation User Experience Needs Improvement Good Great � 27

  28. Overall Comparison Angular React Vue Initial Startup Time 6 h 3 h 2 h (ToDo List Application) Total Time Until 17 h 12 h 10 h Finished (ToDo List Application) Beginner Poor Ok Great Experience Medium-Large Small-Medium Small-Medium Target Audience Teams Teams Teams SPAs, Small SPAs, Small Intended Use-Case SPAs Components Components � 28

  29. Questions? � 29

Recommend


More recommend