40
Vue.js Made my life easier Filipa Lacerda - @filipalacerda

vue talk require lx - GitLab...// parent 2 3 methods: { handleCIick() { // do something 9 10) ild-component @userCI icked=" handleCIick" 11

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

Vue.jsMade my life easier

Filipa Lacerda - @filipalacerda

Page 2: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

SENIOR FRONTEND ENGINEER @ GITLAB

@filipalacerda

gitlab.com/filipa

github.com/filipalacerda

alligator.io/author/filipa-lacerda

Page 3: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

https://vuejs.org/

Page 4: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

🦄 Versatile

Page 5: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

🚀 Performant

Page 6: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 7: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 8: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

Composing Components

Props go down, events go up

Page 9: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

Props go down

Page 10: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

Events go up

Page 11: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 12: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 13: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 14: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

Template system

Page 15: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 16: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 17: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

Conditional Rendering List renderingEvent handlingForm input bindingsClass and style bindings

Page 18: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 19: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

https://jsfiddle.net/24eo7fzy/8/

Page 20: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 21: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

https://gitlab.com/gitlab-org/gitlab-ce/commit/0f43e98ef8c2da8908b1107f75b67cda2572c2c4

2011

The start of Gitlab

Page 22: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

2012

Sid comes in

Page 23: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

2013

Dmitriy was hired

Page 24: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

2014

The company!

Page 25: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 26: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 27: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 28: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 29: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

Why?

Page 30: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

22nd of each month

Page 31: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

Reactivity!

Page 32: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

Rewrite all the things?

Page 33: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

Rewrite all the things?

NO.

Page 34: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

https://vuejs.org/v2/guide/state-management.html#Official-Flux-Like-Implementation

Page 35: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 36: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

What about complex states?

Page 37: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

https://vuex.vuejs.org/en/intro.html

Page 38: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

https://router.vuejs.org/en/

Vue Router

Page 39: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11
Page 40: vue talk require lx - GitLab...// parent 2  3 methods: { handleCIick() { // do something 9  10) ild-component @userCI icked=" handleCIick" 11

Questions?