第一次用 vue.js 就愛上 [改]

92
Kuro Hsu [email protected] ᒫӞ稞አ Vue.js 疰眢Ӥ

Upload: kuro-hsu

Post on 07-Jan-2017

14.346 views

Category:

Technology


5 download

TRANSCRIPT

Page 2: 第一次用 Vue.js 就愛上 [改]

• Kuro Hsu • @

• http://kuro.tw

• kurotanshi [at] gmail.com

Page 3: 第一次用 Vue.js 就愛上 [改]

Agenda

• Vue.js

• Vue

• Vue

• Vue

• Class

• Vue

Page 4: 第一次用 Vue.js 就愛上 [改]

Vue.js

• JS /

• view

• view

• (SPA, Single Page Application)

Page 5: 第一次用 Vue.js 就愛上 [改]

10 vue.js

http://goo.gl/RVQwop

Page 6: 第一次用 Vue.js 就愛上 [改]

MVVM (Model-View-ViewModel)

Page 7: 第一次用 Vue.js 就愛上 [改]

http://goo.gl/8n2bGr

Page 8: 第一次用 Vue.js 就愛上 [改]

Vue.js

Page 9: 第一次用 Vue.js 就愛上 [改]

vue.js

Page 10: 第一次用 Vue.js 就愛上 [改]

vue-cli

$ npm install -g vue-cli

$ vue init webpack-simple [project name]

$ cd [project name]

$ npm install

$ npm run dev

Page 11: 第一次用 Vue.js 就愛上 [改]

Properties & Methods

Page 12: 第一次用 Vue.js 就愛上 [改]

: VUE.JS ( ) https://goo.gl/s3livG

Page 13: 第一次用 Vue.js 就愛上 [改]

( root instance )

Page 14: 第一次用 Vue.js 就愛上 [改]
Page 15: 第一次用 Vue.js 就愛上 [改]

Vue

Page 16: 第一次用 Vue.js 就愛上 [改]

Vue.js IE8

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty

Page 17: 第一次用 Vue.js 就愛上 [改]

AngularJS 1.x

Page 18: 第一次用 Vue.js 就愛上 [改]

ReactJS

Page 19: 第一次用 Vue.js 就愛上 [改]
Page 20: 第一次用 Vue.js 就愛上 [改]

Lifecycle Vue

Page 21: 第一次用 Vue.js 就愛上 [改]
Page 22: 第一次用 Vue.js 就愛上 [改]
Page 23: 第一次用 Vue.js 就愛上 [改]
Page 24: 第一次用 Vue.js 就愛上 [改]
Page 25: 第一次用 Vue.js 就愛上 [改]

• init

• created

• beforeCompile

• compiled

• ready

lifecycle hooks

• attached

• detached

• beforeDestroy

• destroyed

Page 26: 第一次用 Vue.js 就愛上 [改]

• init

• created

• beforeCompile

• compiled

• ready

• attached

• detached

lifecycle hooks in Vue 2.0• beforeDestroy

• destroyed

• beforeMount

• mounted

• beforeUpdate

• updated

• activated

• deactivatedref: https://github.com/vuejs/vue/issues/2873#upgrade-tips

Page 27: 第一次用 Vue.js 就愛上 [改]

Data Binding

Page 28: 第一次用 Vue.js 就愛上 [改]

• Vue mustache template {{ }}

<span>Message: {{ msg }}</span>

: {{* msg }}

HTML : {{{ raw_html }}}

HTML : <div id="item-{{ id }}"></div>

Page 29: 第一次用 Vue.js 就愛上 [改]

• {{ var a = 1 }}

• {{ if (ok) { return message } }}

• {{ number + 1 }}

• {{ ok ? 'YES' : 'NO' }}

• {{ msg.split('').reverse().join('') }}

computed

Page 30: 第一次用 Vue.js 就愛上 [改]

directives

angularJS Vue.js

directive

( ) http://cn.vuejs.org/api/

Page 31: 第一次用 Vue.js 就愛上 [改]

v-model

http://goo.gl/SWbcKb

Page 32: 第一次用 Vue.js 就愛上 [改]

v-bind

http://goo.gl/dk0rZC

Page 33: 第一次用 Vue.js 就愛上 [改]

filter• Vue.js {{ }}

| filter

• {{ 'abc' | capitalize }}==> Abc

• {{ 'abc' | uppercase }}==> ABC

• {{ 123456 | currency }}==> $123,456.00

Page 34: 第一次用 Vue.js 就愛上 [改]

Computed Properties

Page 35: 第一次用 Vue.js 就愛上 [改]

• {{ }}

view

• vue computed

Page 36: 第一次用 Vue.js 就愛上 [改]

http://goo.gl/sHkYqF

Page 37: 第一次用 Vue.js 就愛上 [改]

Class and Style

class

Page 38: 第一次用 Vue.js 就愛上 [改]

http://goo.gl/xqJgp9

Page 39: 第一次用 Vue.js 就愛上 [改]

Conditional & List Rendering

Page 40: 第一次用 Vue.js 就愛上 [改]

v-if / v-else

http://goo.gl/HJt73r

Page 41: 第一次用 Vue.js 就愛上 [改]

v-show

Page 42: 第一次用 Vue.js 就愛上 [改]

with template

Page 43: 第一次用 Vue.js 就愛上 [改]

v-if v-show

• v-if v-show DOM v-if

• v-show CSS (style)

• v-show

Page 44: 第一次用 Vue.js 就愛上 [改]

v-for

http://goo.gl/BwuHYB

Page 45: 第一次用 Vue.js 就愛上 [改]

http://goo.gl/z0CcH3

Page 46: 第一次用 Vue.js 就愛上 [改]

v-for with object

http://goo.gl/Ela7PF

Page 47: 第一次用 Vue.js 就愛上 [改]

v-for with range

http://goo.gl/9ggJ5F

Page 48: 第一次用 Vue.js 就愛上 [改]

v-for with filter

http://goo.gl/nxw9I3

Page 49: 第一次用 Vue.js 就愛上 [改]

http://goo.gl/KRsMPM

Page 50: 第一次用 Vue.js 就愛上 [改]

http://goo.gl/IPwiib

Page 51: 第一次用 Vue.js 就愛上 [改]

: track-by

v-for id Vue track-by

Page 52: 第一次用 Vue.js 就愛上 [改]

Event Handling

Page 53: 第一次用 Vue.js 就愛上 [改]

v-on

Page 54: 第一次用 Vue.js 就愛上 [改]

http://goo.gl/Gf9hCL

Page 55: 第一次用 Vue.js 就愛上 [改]
Page 56: 第一次用 Vue.js 就愛上 [改]

Modifiers

Page 57: 第一次用 Vue.js 就愛上 [改]
Page 58: 第一次用 Vue.js 就愛上 [改]
Page 59: 第一次用 Vue.js 就愛上 [改]

Transitions

Page 60: 第一次用 Vue.js 就愛上 [改]

http://goo.gl/Ws0e2v

Page 61: 第一次用 Vue.js 就愛上 [改]
Page 62: 第一次用 Vue.js 就愛上 [改]

transition with jQuery animate

http://goo.gl/g4xRXt

Page 63: 第一次用 Vue.js 就愛上 [改]

Components

Page 64: 第一次用 Vue.js 就愛上 [改]

Components

• Component vue HTML

• HTML

Page 65: 第一次用 Vue.js 就愛上 [改]
Page 66: 第一次用 Vue.js 就愛上 [改]

Page 67: 第一次用 Vue.js 就愛上 [改]

props

• scope

• prop .sync .once

Page 68: 第一次用 Vue.js 就愛上 [改]

http://goo.gl/52SIzs

Page 69: 第一次用 Vue.js 就愛上 [改]

null

Page 70: 第一次用 Vue.js 就愛上 [改]

• prop

• this.$parent this.$root

• this.$children ( ) this.$children v-if

v-ref

Page 71: 第一次用 Vue.js 就愛上 [改]

http://goo.gl/umMf39

Page 72: 第一次用 Vue.js 就愛上 [改]
Page 73: 第一次用 Vue.js 就愛上 [改]
Page 74: 第一次用 Vue.js 就愛上 [改]

• $on()

• $emit()

• $dispatch()

• $broadcast()

• DOM Event callback

callback function return true

Page 75: 第一次用 Vue.js 就愛上 [改]

http://goo.gl/phpbDQ

Page 76: 第一次用 Vue.js 就愛上 [改]
Page 77: 第一次用 Vue.js 就愛上 [改]

:is

http://goo.gl/K0Zrps

Page 78: 第一次用 Vue.js 就愛上 [改]
Page 79: 第一次用 Vue.js 就愛上 [改]

keep-alive

keep-alive

Page 80: 第一次用 Vue.js 就愛上 [改]
Page 81: 第一次用 Vue.js 就愛上 [改]

http://goo.gl/lErGx4

Page 82: 第一次用 Vue.js 就愛上 [改]

slot

• angular transclusion

• W3C web-components slot

• slot

Page 83: 第一次用 Vue.js 就愛上 [改]

http://goo.gl/vmxj9G

Page 84: 第一次用 Vue.js 就愛上 [改]

Tools & Resources

Page 85: 第一次用 Vue.js 就愛上 [改]

Vue.js dev-toolshttps://goo.gl/T6Fvtu

Page 86: 第一次用 Vue.js 就愛上 [改]

Vue-clihttps://github.com/vuejs/vue-cli

Page 87: 第一次用 Vue.js 就愛上 [改]

vue-cli

$ npm install -g vue-cli

$ vue init webpack-simple [project name]

$ cd [project name]

$ npm install

$ npm run dev

Page 88: 第一次用 Vue.js 就愛上 [改]

HTML

Script

Style

Vue file

Page 89: 第一次用 Vue.js 就愛上 [改]

Awesome Vue.jshttps://github.com/vuejs/awesome-vue

Page 90: 第一次用 Vue.js 就愛上 [改]

Next,… Vue 2.0 !•

• Vue 1.0 API

• https://github.com/vuejs/vue/issues/2873

Page 91: 第一次用 Vue.js 就愛上 [改]
Page 92: 第一次用 Vue.js 就愛上 [改]

Thanks