我目前正在编写类似于下面的代码,试图创建一个简单的倒计时计时器:
const {createApp, ref} = Vue
const app = createApp({
setup(_, { expose }) {
const timer = ref("00:00")
return {
timer
}
}
})
document.addEventListener("DOMContentLoaded", () => {
app.mount('#app')
let remaining = 60 * 12
setInterval(()=>{
console.log("interval")
if (remaining <= 0) return;
remaining--
const minutes = remaining/60
const seconds = remaining % 60
app.timer = `${Math.trunc(minutes).toString().padStart(2, "0")}:${seconds.toString().padStart(2, "0")}`
}, 1000);
})
我遇到的问题是,我根本无法让应用程序更新打印的值(如果我将增量代码移动到设置中,它就可以工作,但我想避免这种情况)。我不知道该怎么做才最干净。我在一个electron应用程序中使用Vue,我希望最终将vue代码连接到从主进程传递的消息。
1条答案
按热度按时间sg2wtvxw1#
app
是应用程序对象而不是根组件示例,它在Vue 2中扮演的角色与Vue
相同。它应该是:
除非Vue应用程序是无法修改的第三方代码,否则将所有相关逻辑(
setInterval
等)移动到应用程序内部并公开公共方法以与页面交互是一个很好的做法。