标题几乎可以解释它,但我希望每秒都能触发一个功能。
我没有尝试任何东西,也没有太多有用的代码。
我做了一些谷歌搜索,到目前为止,任何例子都很高兴。
另外,我正在使用laravel 5.6
这不适用于调用 countDown()方法
export default {
ready() {
window.setInterval(() => {
this.countDown();
},1000);
},
答案 0 :(得分:9)
谢谢大家,我找到了解决方案,只是在谷歌中提出了一些正确的问题:)
mounted: function () {
this.$nextTick(function () {
window.setInterval(() => {
this.countDown();
},1000);
})
}
答案 1 :(得分:4)
上面给出的答案每秒触发一次(由于$ nextTick的原因),因此,如果要设置其他时间间隔,只需删除$ nextTick(我必须每30秒触发一次)
mounted: function () {
window.setInterval(() => {
this.getNotifications()
}, 30000)
}
答案 2 :(得分:1)
只需组合解决方案(因为我无法编辑),下面的代码即可工作。一个陷阱是,您还希望一旦视图被销毁就停止工作,因此,当调用beforeDestroy
钩子时,您希望将其清除
mounted: function () {
this.timer = setInterval(() => {
this.countDown()
}, 1000)
},
data() {
return {
timer: null
}
},
beforeDestroy() {
clearInterval(this.timer)
}
答案 3 :(得分:1)
这最有效,因为它可以确保在组件销毁之前清除间隔,而无需在数据中定义任何内容。
created: function() {
const timer = setInterval(() => {
this.countDown();
}, 1000);
this.$once("hook:beforeDestroy", () => {
clearInterval(timer);
});
}
答案 4 :(得分:0)
检查一下。这对我有用。
created() {
this.interval = setInterval(() => this.getNotifications(), 3000);
}