Slide 1

Slide 1 text

Vue.js @wtnabe Kanazawa.rb meetup #64 2017-12-16(Sat) at IT-Plaza MUSASHI

Slide 2

Slide 2 text

Vue.js vue-devtools vue-cli runtime ( template ) data ( )

Slide 3

Slide 3 text

Vue.js

Slide 4

Slide 4 text

※ Vue.js v2 v1

Slide 5

Slide 5 text

Vue.js ES 5 compat ( since IE 10 / iOS 6 / Android 4.4 ) Progressive JavaScript Framework React AngularJS 1 React JS-centric AngularJS 1 Web Components-centric ( Google ) template

Slide 6

Slide 6 text

Component React Single File Component , , <style> Scoped CSS Shadow DOM ( Web Components ) {{ }} placeholder @ v- directive ViewModel

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

React class HelloMessage extends React.Component { render() { return (
Hello {this.props.name}
); } } JavaScript JSX

Slide 9

Slide 9 text

AngularJS 1 ...
Name:

Hello {{yourName}}!

ng-directive

Slide 10

Slide 10 text

Vue.js v2

{{ greeting }} World !

export default { data() { greeting: 'Hello' } } JavaScript

Slide 11

Slide 11 text

, props , etc JSX, v- , {{ }} , etc

Slide 12

Slide 12 text

Progressive

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Webpack ? Parcel ? Yarn ? Babel ? HMR ?

Slide 16

Slide 16 text

Rail

Slide 17

Slide 17 text

vue-devtools

Slide 18

Slide 18 text

vuejs/vue-devtools: Chrome devtools extension for debugging Vue.js applications. developer tools Vue Component Tree Fire DOM

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

Vue.js mini ed debug

Slide 21

Slide 21 text

Small Footprint

Slide 22

Slide 22 text

vue-cli

Slide 23

Slide 23 text

vuejs/vue-cli: Simple CLI for scaffolding Vue.js projects scaffold

Slide 24

Slide 24 text

vue-cli Yarn Browserify + Browserify-HMR Babel + Babelify + vue-jsx Vue + Vueify npm-run-all sprintf-js

Slide 25

Slide 25 text

fy JS import OK

Slide 26

Slide 26 text

vue-cli OK

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

progressive

Slide 29

Slide 29 text

template runtime

Slide 30

Slide 30 text

Vue2.x template

Slide 31

Slide 31 text

template https://jp.vuejs.org/v2/api/#template

Slide 32

Slide 32 text

https://jp.vuejs.org/v2/guide/installation.html# https://jp.vuejs.org/v2/guide/installation.html# https://jp.vuejs.org/v2/guide/installation.html# - https://jp.vuejs.org/v2/guide/installation.html#

Slide 33

Slide 33 text

template // Define a new component called todo-item Vue.component('todo-item', { template: '
  • This is a todo
  • ' }) Single File Component

    Slide 34

    Slide 34 text

    No content

    Slide 35

    Slide 35 text

    data function

    Slide 36

    Slide 36 text

    https://jp.vuejs.org/v2/guide/components.html#data - Vue 1 : data “ “

    Slide 37

    Slide 37 text

    3 Vue.js Vue.js ― Web gihyo.jp … data function data Warning

    Slide 38

    Slide 38 text

    Vue warn var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' } })

    Slide 39

    Slide 39 text

    var app = new Vue({ el: '#app', data: function() { return { message: 'Hello Vue!'; } } })

    Slide 40

    Slide 40 text

    1. template runtime 2. data

    Slide 41

    Slide 41 text

    vue-cli Single File Component progressive

    Slide 42

    Slide 42 text

    Asset Bundling JS CSS jQuery plugin Flux

    Slide 43

    Slide 43 text

    No content

    Slide 44

    Slide 44 text

    Enjoy Vue.js !!