Vue Basics Recap

CDN

<script src="https://unpkg.com/vue@3.0.2"></script>

Mount Vue to HTML Element

const app = Vue.createApp({ 
  //data, functions, component template  
})

app.mount('#app')

Provide App Data

const app = Vue.createApp({
  data() { 
    return {
      data-property: value
    } 
  } 
})

<p> {{ data-property }} </p>

Register Event Listener: methods, v-on and @

const app = Vue.createApp({
  methods: { 
    foo() { this.data-property = 'new value' },
    bar(arg) { ...} 
  }
})

<button v-on:click="javascript-code">...</button>
<button @:click="javascript-code">...</button>
<button @click=foo>...</button>
<button @click=bar('x')>...</button>

 

<div class="box" @mouseleave="handleEvent>...</div>
<div class="box" @mouseover="handleEvent($event, 5)">...</div>
<div class="box" @dblclick="handleEvent(5)">...</div>
<div class="box" @mousemove="handleEvent">...</div>

Vuew Conditional Directives :  v-if, v-else-if, v-else, and v-show

<div v-if="bool-expr"> </div>
<div v-else-if="bool-expr"> </div>
<div v-else> </div>

<div v-show="bool_expr"> </div>

Vue Iterator Directive: v-for

<ul> 
  <li v-for="elm in iterable"> 
    ...
  </li> 
</ul>

Vue Attribute Binding: v-bind and :

<a v-bind:href="url">...</a>
<a :href="url">...</a>

Vue Dynamic Classes: v-bind and :

<li v-bind:class="{css-class: bool-expr}"> ... </li>
<li :class="{css-class: bool-expr}"> ... </li>

Vue Computed Properties: computed

const app = Vue.createApp({
  computed: { 
    foo() { 
      ...
    }
  }
})


<div v-if="foo" >
  ..
</div>

© 2022, Eric.

Leave a Reply

Your email address will not be published. Required fields are marked *