-
-
Notifications
You must be signed in to change notification settings - Fork 17
Sample Vue Component
jnnanni edited this page Oct 3, 2022
·
1 revision
This code block contains a sample vue component that has examples and explanations of many different paradigms that you will use when developing GUI components with Vue.
<!-- Define the html of your components here -->
<!-- Note that there can only be one top level div in the template -->
<template>
<!-- CSS Classes can be added to a div using class="class1 class2" -->
<div class="wrapper box">
<!-- You can use v-for to render items in a loop -->
<div v-for="i in x">
<!-- Event handlers can be declared with v-on:{eventName} -->
<button v-on:click="addOnetoX()">Add one to x #{{i}}</button>
</div>
<!-- v-for can also be used to index through data structures like arrays -->
<!-- similar to Python -->
<div v-for="elt in arr">
<!-- Use {{}} to display data on the DOM -->
{{elt}}
</div>
<!-- v-if can be used to conditionally render html -->
<div v-if="x > 2">
<p> x is greater than two</p>
</div>
</div>
</template>
<!-- Here you can define javascript functionality for your component -->
<script>
// Define imports for other components and packages here
import { mapGetters } from 'vuex'
import Component from './Component.vue'
// Define const variables here
// These will only exist in the scope of the <script> tag
const two = 2
// Must include "this." in front of any var or function
// defined inside of export section
export default {
// Can be used for recursively rendering a component
// Can also be helpful for debugging
name: 'AutonTask',
// Define component local variables
data () {
return {
x: 1,
arr: [1, 2, 3]
}
},
// These are general functions that can be used
methods: {
addOnetoX: function () {
this.x = this.x + 1
}
},
// Values that can be treated like read-only variables
// Calculated based on component member variables
// Note the this in front of var x but not const two
computed: {
xPlusTwo: function () {
return this.x + two
}
},
// Functions that have the same name as a variable and will run
// Whenever the value of that var changes
watch: {
// Runs whenever variable x changes
// val is the new value that x just changed to
x: function(val){
console.log("x has changed")
}
},
// Run before the component is created, set up any logic essential for
// variables in the component
beforeCreate: function () {
},
// Function that will run at the creation of the Component but before it is rendered to the DOM
created: function () {
},
// Function that runs immediatly after rendering component to DOM
mounted: function () {
},
// Function that runs after any update to the DOM
updated: function (){
},
// Function that runs after DOM is unrendered
// Use this for any cleanup functions or to emit
// an event about the destruction of the components
unmounted: function () {
},
// Child Components that will be used to assemble the current component
components: {
}
}
</script>
<!-- This is where you will define CSS Classes for your components -->
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
/* Examples of CSS classes */
.wrapper{
margin: 1px
}
.box{
border: 1px grey
}
</style>