Javascript 是否在<;中声明变量;脚本></脚本>;关于vue组件全局的部分?
我在有计时器的组件上使用Javascript 是否在<;中声明变量;脚本></脚本>;关于vue组件全局的部分?,javascript,vue.js,vuejs2,vue-component,vuetify.js,Javascript,Vue.js,Vuejs2,Vue Component,Vuetify.js,我在有计时器的组件上使用v-for指令时遇到问题。 父组件使用发布的组件,如下所示: ... ... 发布的组件有一个计时器,该计时器每秒更新一次。存储间隔的变量是在导出组件逻辑之前定义的。这就是我的问题所在。我观察到每个组件都使用并覆盖相同的变量interval 我可以看到这一点,因为当我在整个函数setTempsPausada上设置另一个间隔,并将随机毫秒作为超时时,它工作了(计时器每秒更新一次)。如果没有最后的间隔,当我在data部分声明interval变量时,它也起作用了 我的问题是
v-for
指令时遇到问题。
父组件使用发布的组件,如下所示:
...
...
发布的组件有一个计时器,该计时器每秒更新一次。存储间隔的变量是在导出组件逻辑之前定义的。这就是我的问题所在。我观察到每个组件都使用并覆盖相同的变量interval
我可以看到这一点,因为当我在整个函数setTempsPausada
上设置另一个间隔,并将随机毫秒作为超时时,它工作了(计时器每秒更新一次)。如果没有最后的间隔,当我在data
部分声明interval变量时,它也起作用了
我的问题是,这怎么会发生?有人能解释一下它是怎么工作的吗
谢谢
已发布的组件:
...
从“时刻”导入时刻
让interval=null//我遇到问题的超时变量
导出默认值{
名称:'GestioTiming',
数据(){
返回{
pausaAcumulada:0,//秒数
tempsPausat:“”//要在DOM上显示的字符串
}
},
...,
观察:{
“手势暂停”:{
处理程序(值,oldValue){
这个
},
深:是的
},
},
方法:{
setTempsPausada(){
此参数为0
清除间隔(间隔)
//东西
interval=setInterval(()=>{//增加每秒的秒数
这是Pausaada++
}, 1000)
}
}
}
编辑
创建的沙盒:
是否可以用您的代码创建JSFIDLE或类似的工具?我不确定是否可以。我应该使用
Vue.component(component)
来声明复制示例所需的两个组件,而这不是我声明组件的方式。我为每个组件使用单个.vue文件,每个组件都有自己的模板
标记,我遇到了问题。codesandbox.io可以帮助您创建问题模板。@VaritJPatel Sandbox完成!Thanksthis.interval是被动属性,而interval不是Vue。是否可以用代码创建JSFIDLE或类似的东西?我不确定是否可以。我应该使用Vue.component(component)
来声明复制示例所需的两个组件,而这不是我声明组件的方式。我为每个组件使用单个.vue文件,每个组件都有自己的模板
标记,我遇到了问题。codesandbox.io可以帮助您创建问题模板。@VaritJPatel Sandbox完成!Thanksthis.interval是被动属性,而interval不是Vue。