[英]Synchronize result with value changed in vue.js
我写了如下的.vue文件,以在100ms后更改h1#msg
。
<template>
<div id="main">
<h1 id="msg">{{ msg }}</h1>
</div>
</template>
<script>
export default {
name: 'Top',
data () {
let a=['TEST']
setTimeout((function(a){a[0]='test'}),100)
return {
msg: a
}
}
}
</script>
<style>
</style>
但是,我无法通过此代码更改状态。 我试图使用数组通过引用传递值。 我不喜欢使用querySelector(),因为它迫使我在HTML和方法的参数中添加态度。
不要在data()
编写javascript,正确的代码是:
<script>
export default {
name: 'top',
data () {
return {
msg: 'test'
}
}
mounted() {
setTimeout(() => this.msg = 'Bu!', 100)
}
}
</script>
尝试此代码段
<template>
<div id="main">
<h1 id="msg">{{ msg }}</h1>
</div>
</template>
<script>
export default {
name: 'Top',
data () {
return {
msg: 'a'
}
},
created() {
setTimeout(() => this.msg = 'Hello World!', 100)
}
}
</script>
您的data
应仅将变量声明为更改前要更改的变量。 然后在mounted
执行timeout
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.