vue.js - Vue:使用setInterval中的变量值更改类
问题描述
我正在学习 Vue JS。我想使用setInterval
. 但不能传递Method
to的变化值Computed Property
。两秒后类会随着“ changeColor
”的变化值而自动变化
我的代码:
HTML:
<div>
<button @click="startEffect">Start Effect</button>
<div id="effect" :class="myClass"></div>
</div>
CSS:
.highlight {
background-color: red;
width: 200px !important;
}
.shrink {
background-color: gray;
width: 50px !important;
}
Vue JS:
new Vue({
el: '#exercise',
data: {
changeColor: false
},
methods : {
startEffect: function() {
setInterval(function(){
this.changeColor = !this.changeColor;
//alert(this.changeColor);
}, 2000);
//alert(this.changeColor);
}
},
computed: {
myClass: function() {
return {
highlight: this.changeColor,
shrink: !this.changeColor
}
}
}
})
解决方案
将您的功能绑定到组件...
setInterval(function(){
this.changeColor = !this.changeColor;
}.bind(this), 2000);
然后你可以做...
<div id="effect" :class="[changeColor?'highlight':'shrink']"></div>
推荐阅读
- browser - 当我通过 cypress 启动浏览器时,在我的 Web 应用程序中看不到图标
- maven - 使用 Maven Tycho 构建的更新站点缺少插件和功能文件夹
- c++ - pthread中的共享变量
- google-bigquery - 大查询去重查询不正常
- c++ - 在 C++ 中输入浮点数?
- vega - 根据信号值更改不透明度和填充
- json - 如何在swift中将文本字段中的全名文本分成两个字符串(名字和第二名)
- c# - C# Serilog 按日志对象类型或属性过滤
- c# - 在 CefSharp 中保存浏览器数据
- reactjs - AWS API 调用被 CORS 策略阻止