对于一个简单的演示,我想反转我在我的Vue.js实例的数据属性中定义的布尔值.
我尝试了什么:
<button @click="!spanVisible" type="button">Toggle</button>
Run Code Online (Sandbox Code Playgroud)
和
<button @click="(!spanVisible)" type="button">Toggle</button>
Run Code Online (Sandbox Code Playgroud)
我想避免在我的v-on中写一个单独的方法或者有类似的东西:click ="":spanVisible ? !spanVisible : !spanVisible因为它只是多余的.
所以现在我的问题主要是:为什么直接反转不起作用?还有什么其他的可能性来保持简短?
编辑:
我现在发现的最短的变化是使用spanVisible = !spanVisible,但不确定这是否是最简洁的版本.
解:
我发现的最佳解决方案是@Sombriks在评论中提出的:使用@click="!spanVisible"仅评估反转的值,spanVisible但不替换它的值,为它分配一个新值,你可以使用@click="spanVisible = !spanVisible",这似乎是最简洁的工作版本现在.
Mr.*_*ist 21
我认为可以不用任何 methods
添加一个 Click 事件来反转布尔变量的值。像这样:
@click="showExtra = !showExtra"
Run Code Online (Sandbox Code Playgroud)
在您的脚本数据中:
<script>
export default {
return {
data() {
showExtra: false
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
你做错了。
<button v-on:click="toggle" type="button">Toggle</button>
在你的脚本部分:
data () {
return {
spanVisible: true
}
},
methods: {
toggle () {
this.spanVisible = !this.spanVisible
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,data如果您使用的是 Vue 组件,则以这种方式声明。如果您在文件脚本中使用,您将跳过return