【发布时间】:2019-03-04 00:33:05
【问题描述】:
在下方查看demo:
new Vue({
el: '#app',
data: {
flag: true
},
computed: {
style() {
let styleA = {
borderBottom: '1px solid red',
borderRight: '1px solid red'
};
let styleB = {
border: '1px solid green',
borderRight: '1px solid red'
}
return this.flag ? styleA : styleB
}
},
methods: {
changeStyle() {
this.flag = !this.flag;
}
}
})
.box {
width: 100px;
height: 100px;
}
<html>
<header>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
</header>
<body>
<div id="app">
<div class="box" :style="style"></div>
<button @click="changeStyle">changeStyle</button>
</div>
</body>
</html>
在此演示中,单击changeStyle 按钮可切换两种不同的样式。
这是步骤:
- 首先,
styleA与red borderBottom和red borderRight一起应用 单击
changeStyle按钮,styleB被应用,green border和red borderRight是预期的,但只显示green border。再次点击
changeStyle按钮,我们可以看到,只显示red borderBottom,就像red borderRight消失一样。再次点击,您将永远看不到
red borderRight
VUE中比较虚拟节点和渲染有问题吗?
【问题讨论】:
标签: javascript css vue.js virtual-dom