前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue系列(五)——渲染之二三事

Vue系列(五)——渲染之二三事

作者头像
萌兔IT
发布2019-07-26 12:52:18
4330
发布2019-07-26 12:52:18
举报
文章被收录于专栏:萌兔it萌兔it

Hello小伙伴们,好久不见,大家五一过得怎么样呢~反正兔妞出去以日均2w步的运动量玩耍一圈回来已经要散架了,所以稍休息了几天,今天就继续我们的Vue的专题吧。如标题,我们今天的主题是渲染!

列表渲染

不知道大家有没有被数组的循环渲染折磨过呢,相信大家都写过for(var i=0, i<data.length;i++){}之类的代码吧,有的时候一层套一层,看着自己都要吐了,这时候就轮到我们Vue的列表渲染上场了。

1)使用Vue进行列表渲染主要需要两步。

首先,我们要在data中定义数组:

有了数组,我们就可以对数组进行循环了,通过v-for我们就可以对列表进行循环了。这里其实和我们前面提到的ES6中的for循环很像,item in items的方法进行循环。是不是很简单呢~

2)那么有的小伙伴要问了,那万一我要知道索引咋办呢~别着急,Vue是支持的呢!

这样子就可以了,但是顺序不要写反哦,一定要先写循环体中的对象,然后才是index!

3)告诉大家个小秘密,其实能够作为列表循环的不只是数组呢,对象也是可以的:

一定要去试试哦~

4)细心的小伙伴们一定发现了,有的编辑器单写一个v-for会有小浪线,虽然也能运行,但是这对于一个拥有强迫症的码农来说是多么的煎熬啊!我们来看看是为啥呢?

事实上,当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,如果数据项的顺序被改变,Vue 将不会移动 DOM 元素来匹配数据项的顺序,而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素。但是有些的时候会出现问题,通过增加一个key就能够就能够识别节点身份啦,所以最好都带上key呢~

那么讲道理key到底是干嘛的呢?它主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。从而避免有重复的key造成渲染失败。所以我们最好这样写呢:

条件渲染

1)说完了列表渲染,我们现在要说说条件渲染了。想必我聪明的小伙伴们已经猜到了v-if是干嘛的了,没错说白了就是有条件的渲染某一块内容。相似于if的使用,v-if也是有v-if, v-else-if, v-else。那么就让我们看一下究竟怎么用呢?

有了这个做个tab也就轻松多了,绑定个事件,通过改变条件的值就可以了,是不是呢~

2)不知道大家听说过v-show吗,这个与v-if有着相似的功能,都能够控制元素是否能够显示,那么他们又有什么区别呢。

他们的区别其实可以类比一下display:none;和visibility: hidden;

首先,就渲染的层面来说,v-show是默认渲染所有内容的,只是控制CSS样式让元素不能显示,有较大的初始渲染开销,而v-if是真的按照条件去渲染对应的区块,相对初始开销比较小。由于v-if每次条件改变都真的重新进行渲染,销毁、重建条件块中的事件监听器和子组件,需要很大的开销。而v-show,一直不进行重新渲染,所以有着较小的切换开销。

好啦,今天的内容就到这里啦,喜欢兔妞文章的小伙伴请关注并在看哦~~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 萌兔it 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档