Skip to content

Vue.js Spiekbriefje

Vue is een progressief JavaScript-framework voor het bouwen van gebruikersinterfaces. In tegenstelling tot andere monolithische frameworks is Vue vanaf de basis zo ontworpen dat het stapsgewijs kan worden geadopteerd. De kernbibliotheek richt zich alleen op de weergavelaag en is gemakkelijk op te pakken en te integreren met andere bibliotheken of bestaande projecten.

Lijsten

<li v-for="todo in todos">
  {{ todo.text }}
  {{ $index }}
</li>

Gebeurtenissen (Events)

<button v-on:click='submit'>Gaan</button>

Componenten

new Vue({
  components: { app: App }
})

API-interface

Vue.extend({ ... })        // componenten maken
Vue.nextTick(() => {...})

Vue.set(object, key, val)  // reactief
Vue.delete(object, key)

Vue.directive('my-dir', { bind, update, unbind })
// <div v-my-dir='...'></div>

Vue.elementDirective('my-dir', { bind, update, unbind })
// <my-dir>...</my-dir>

Vue.component('my-component', Vue.extend({ .. }))

Vue.partial('my-partial', '<div>hallo {{msg}}</div>')
// <partial name='my-partial'></partial>
new Vue({
  data: { ... }
  props: ['size'],
  props: { size: Number },
  computed: { fullname() { return this.name + ' ' + this.lastName } },
  methods: { go() { ... } },
  watch: { a (val, oldVal) { ... } },
  el: '#foo',
  template: '...',
  replace: true, // vervang element (standaard true)

  // levenscyclus
  created () {},
  beforeCompile () {},
  compiled () {},
  ready () {}, // $el wordt voor de eerste keer ingevoegd
  attached () {},
  detached () {},
  beforeDestroy () {},
  destroyed () {},

  // opties
  directives: {},
  elementDirectives: {},
  filters: {},
  components: {},
  transitions: {},
  partials: {}
})

Vue Template

Zie vueify

// app.vue
<template>
  <h1 class="red">{{msg}}</h1>
</template>
 
<script>
  module.exports = {
    data () {
      return {
        msg: 'Hallo wereld!'
      }
    }
  }
</script> 

en

<template lang='jade'>
h1(class='red') {{msg}}
</template>