条件是循环的开始。。。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Conditional rendering</title> <script src="https://unpkg.com/vue/dist/vue.js"></script> </head> <body> <h4>Conditional Rendering</h4> <h6>v-if</h6> <div id="demo"> <h1 v-if="ok">Yes</h1> <h1 v-else>No</h1> <script> var vm = new Vue({ el: '#demo', data: { ok: false } }) </script> </div> <h6>Template v-if</h6> <div id="demo2"> <template v-if="ok"> <h1>Title</h1> <p>Paragraph 1</p> <p>Paragraph 2</p> </template> <!--<div v-if="Math.random() > 0.5">--> <!--Now you see me--> <!--</div>--> <div v-else> Now you don't </div> <script> var vm = new Vue({ el: '#demo2', data: { ok: '' } }) </script> </div> <h6>v-show(不支持template)</h6> <div id="demo1" > <button @click="foo()">aa</button> <div v-show="ok" > Now you see me </div> <script> var vm = new Vue({ el: '#demo1', data: { ok: '', // no: '' }, methods:{ foo:function () { vm.ok='show' } } }) </script> </div> <p>if or show?</p>v-if <p>Generally speaking, v-if has higher toggle costs(切换损耗) while v-show has higher initial render costs(渲染损耗). So prefer v-show if you need to toggle something very often, and prefer v-if if the condition is unlikely to change at runtime.变动大用v-show,否则用v/p> <mark>v-if 是真实的条件渲染,因为它会确保条件块在切换当中适当地销毁与重建条件块内的事件监听器和子组件。 v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——在条件第一次变为真时才开始局部编译(编译会被缓存起来)。 相比之下, v-show 简单得多——元素始终被编译并保留,只是简单地基于 CSS 切换。 一般来说, v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗。因此,如果需要频繁切换使用 v-show 较好,如果在运行时条件不大可能改变则使用 v-if 较好。</mark> </body> </html>