我正在尝试vue.js,到目前为止看起来还不错。我遇到了一些意想不到的行为,我不知道这是一个错误,还是故意的。在某些情况下,v-else
指令会导致我的元素多次渲染。我把它减少到最小的再现。
尝试点击“开始”按钮,并注意会出现越来越多的“不”段落。我希望最多只有1个。
var d = { n: null };
new Vue({
el: 'body',
data: d,
methods: {
go: function() { d.n = d.n == null ? 0 : null; }
}
});
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/1.0.3/vue.min.js"></script>
<p v-if="n">yes</p>
<p v-else>no</p>
<button v-on:click="go()">go</button>
我可以找到让我能够达到预期行为的解决方法,但在我开始向我的代码库添加黑客之前,发生了什么?