And*_*ers 11 time vue.js computed-properties
我有一个集合Events。这些将根据它们的状态呈现在列表中 - 即将到来的/实时/以前的。因此渲染取决于当前时间。随着时间的推移,如何使计算属性更新/重新计算?
<template>
<div>
<h2>Upcoming events</h2>
<p v-bind:key="event.name" v-for="event in upcomingEvents">{{ event.name }}</p>
<h2>Live events</h2>
<p v-bind:key="event.name" v-for="event in liveEvents">{{ event.name }}</p>
<h2>Previous events</h2>
<p v-bind:key="event.name" v-for="event in previousEvents">{{ event.name }}</p>
</div>
</template>
<script>
import Event from '../Event.js'
export default {
data() {
return {
events: []
}
},
computed: {
upcomingEvents() {
return this.events.filter(event => event.isUpcoming())
},
liveEvents() {
return this.events.filter(event => event.isLive())
},
previousEvents() {
return this.events.filter(event => event.isPrevious())
},
},
mounted() {
// this.events are populated here
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
itt*_*tus 15
您可以声明一个与时间相关的数据变量并用于setInterval()更新它:
data() {
return {
events: [],
now: Date.now()
}
},
created() {
var self = this
setInterval(function () {
self.now = Date.now()
}, 1000)
},
computed: {
upcomingEvents() {
return this.events.filter(event => event.isUpcoming(this.now))
},
liveEvents() {
return this.events.filter(event => event.isLive(this.now))
},
previousEvents() {
return this.events.filter(event => event.isPrevious(this.now))
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,您需要使用nowin 计算属性来更新它们。
| 归档时间: |
|
| 查看次数: |
5754 次 |
| 最近记录: |