vue.js的条件渲染,其实就是模板里面写if else

Posted web前端教室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue.js的条件渲染,其实就是模板里面写if else相关的知识,希望对你有一定的参考价值。



模板里面写逻辑判断在早期只有二种方法,一是用什么插件来搞;二是自己写一个模板然后正则匹配判断结果去替换字符串。其实这二种方法都是一样的,因为什么模板的插件十有八九也得自己来写。


烦的很,所以早期模板的功能也很弱,基本上只能是view的展现而已。


////////


vue的条件渲染很好用,至少它在模板语言里实现了逻辑判断。别的不说, 我在2013的前后使用过Handlebars这个模板,它的if什么的功能就很弱,弱到几乎等于没有。


这里提一下渲染这个词,其实就是生成dom节点。跟浏览器的渲染过程基本没关系,同学们不要一看到前端渲染就觉得很高大上,其实就是createElement一些dom,然后appendChild到一些dom上去而已。要不就是删除一些再生成再添加,反正就这么回事。


我如果说错了,欢迎来喷我,Orz


////////


回说vue的条件渲染,它使用的指令是v-if,后面还有个v-else,这二个要写到dom上,然后v-else的dom必须跟着v-if,形成一个if else的判断结构。


<div v-if="Math.random() > 0.5">

  Now you see me

</div>

<div v-else>

  Now you don't

</div>


还有v-else-if,也得紧跟着,中间不能有其它元素,


<div v-if="type === 'A'">

  A

</div>

<div v-else-if="type === 'B'">

  B

</div>

<div v-else-if="type === 'C'">

  C

</div>

<div v-else>

  Not A/B/C

</div>

////////


vue的教程写到这里,感觉vue的学习曲线应该是比react要缓和一些。就是很直观,很“自然语言”。


看资料说,v-if的切换消耗资源会多些,也许这里是一个web性能优化的点。



以上是关于vue.js的条件渲染,其实就是模板里面写if else的主要内容,如果未能解决你的问题,请参考以下文章

vue.js条件渲染

vue条件渲染

Vue.2.0.5-条件渲染

Vue.js(2.x)之条件渲染

v-show 与 v-if区别

初学Vue.js:props