Methods Vue2:瞬间JS倒计时计时器
我有一个我不知道如何解决的问题 我有一个带有结束日期的组件,我想显示一个带有剩余秒数的倒计时计时器 我使用MomentJS来实现这一点,但我不知道如何在Vue2中实现这一点 我应该使用计算方法吗Methods Vue2:瞬间JS倒计时计时器,methods,vuejs2,countdown,requestanimationframe,Methods,Vuejs2,Countdown,Requestanimationframe,我有一个我不知道如何解决的问题 我有一个带有结束日期的组件,我想显示一个带有剩余秒数的倒计时计时器 我使用MomentJS来实现这一点,但我不知道如何在Vue2中实现这一点 我应该使用计算方法吗 computed: { timer: function() { var now = moment(); var then = moment().add(180, 'seconds');
computed: {
timer: function() {
var now = moment();
var then = moment().add(180, 'seconds');
return moment().to(then);
(function timerLoop() {
this.timer = countdown(then).toString();
requestAnimationFrame(timerLoop);
})();
},
问题是我必须在vue2显示之前返回该值。但我还必须使用requestAnimationFrame每秒更新一次
有人能帮我吗?使用这个的最好方法是什么?setInterval还是requestAnimationFrame?我认为是后者,因为一页上会有100多个计时器,所以性能是必要的
长话短说:
如何创建此函数的Vue2函数/方法/混合?哪些每秒钟更新一次
感谢我建议使用单个间隔每秒更新模型上的值,并使用Vue的反应性触发对计算属性的更新,而不是为每个计时器设置时间循环
data() {
return {
interval: null,
now: new Date(),
dates: [], // Your dates here
}
},
computed() {
timers() {
return this.dates.map(then => moment(this.now).to(then))
},
},
mounted() {
this.interval = setInterval(() => {
this.now = new Date()
}, 1000)
}