您的位置:首页 > 产品设计 > UI/UE

[Vue] Use Vue.js Component Computed Properties

2017-01-20 19:48 295 查看
You can add
computed
properties to a component to calculate a property on the fly. The benefit of this over invoking a
method
is that computed properties are cached based on their dependencies.

<template>

<section class="container">
<item-description></item-description>
<h1 class="title">
{{message | capitalize}}
</h1>
<button @click="changeMessage" class="button">Change Message</button>
<hr>
<section>
<h2>Mouse event</h2>
<div>{{counter}}</div>
<div @mouseover="inc">Mouse over here to change counter</div>
</section>
<section>
<h2>Keyboard events</h2>
<form @submit.prevent="submit">
<input type="text"
v-model="firstName"
@keyup.enter="submit"
@keyup.alt.ctrl.shift.down="keyeventHandler"/>
<button v-bind:disabled="buttonDisabled">{{buttonText}}</button>
</form>
<div>
{{key}}
</div>
</section>
</section>
</template>

<style scoped>
.title
{
margin: 50px 0;
}

</style>

<script>

import ItemDescription from '../components/item-description';

export default {
data() {
return {
message: 'this is my vue!',
counter: 0,
key: "",
firstName: "",
buttonText: "Add"
}
},

computed: {
buttonDisabled: function() {
return this.firstName == "";
}
},

components: {
ItemDescription
},

filters: {
capitalize(value) {
return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
}
},

methods: {
changeMessage() {
this.message = "Updated message here!"
},

inc() {
this.counter += 1;
},

keyeventHandler() {
this.key = "Ctrl + alt + shift + down is clicked"
},

submit() {
console.log("form is submitted, the value is", this.firstName);
}
}
}

</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: