条件渲染、列表渲染

今天药忘吃喽~ 2023-07-13 13:46 89阅读 0赞

条件渲染

1)v-if

v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 true值的时候被渲染。

  1. <h1 v-if="type">Vue</h1>

Vue是否显示取决于type的取值为true则显示为false则不显示
也可以用 v-else :

  1. <h1 v-if="type">Vue</h1>
  2. <h1 v-else>Oh no </h1>

type的取值为true则Oh no不显示;为false则显示Oh no
v-else 元素必须紧跟在带 v-if 或者 v-else-if 的元素的后面,否则它将不会被识别。

2)v-else-if

  1. <div id="app">
  2. <div v-if="type === 'A'">
  3. A
  4. </div>
  5. <div v-else-if="type === 'B'">
  6. B
  7. </div>
  8. <div v-else-if="type === 'C'">
  9. C
  10. </div>
  11. <div v-else>
  12. Not A/B/C
  13. </div>
  14. </div>
  15. <script type="text/javascript">
  16. var vm = new Vue({
  17. el : "#app",
  18. data : {
  19. type : "",
  20. }
  21. });
  22. </script>

当前代码页面显示为: Not A/B/C(因为type为空)
若type值为A 则页面中将显示A(同理可得BC)
v-else-if 也必须紧跟在带 v-if 或者 v-else-if 的元素之后

3)v-show

用于根据条件展示元素的选项是 v-show 指令

  1. <div id="app">
  2. <h1 v-show="ok">Hello!</h1>
  3. </div>
  4. <script type="text/javascript">
  5. var vm = new Vue({
  6. el : "#app",
  7. data : {
  8. ok : false
  9. }
  10. });
  11. </script>

带有 v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS 属性 display。(当ok为true时,h1将会切换元素的css属性display:block;)
注意:v-show 不支持 <template> 元素,也不支持 v-else
如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

列表渲染

1)数组形式的列表渲染

可以用 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组,而item 则是被迭代的数组元素的别名
遍历数组:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title></title>
  6. <script src="vue.js" type="text/javascript" charset="utf-8"></script>
  7. </head>
  8. <body>
  9. <div id="app">
  10. <ul>
  11. <li v-for="item,index in items" :key="index">//:key==@bind:key
  12. {
  13. {index}}{
  14. { item.msg }}//index索引值
  15. </li>
  16. </ul>
  17. </div>
  18. <script type="text/javascript">
  19. var vm = new Vue({
  20. el : "#app",
  21. data : {
  22. items : [//定义items数组
  23. { msg: 'Foo' },
  24. { msg: 'Bar' }
  25. ]
  26. }
  27. });
  28. </script>
  29. </body>
  30. </html>

运行结果:
在这里插入图片描述

2)对象形式的列表渲染

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title></title>
  6. <script src="vue.js" type="text/javascript" charset="utf-8"></script>
  7. </head>
  8. <body>
  9. <div id="app">
  10. <ul>
  11. <li v-for="value, key in object">
  12. {
  13. {key}} : {
  14. { value }}/获取到/对象属性的值和名称
  15. </li>
  16. </ul>
  17. </div>
  18. <script type="text/javascript">
  19. var vm = new Vue({
  20. el : "#app",
  21. data : {
  22. object: {//定义对象
  23. title: 'How to do lists in Vue',
  24. author: 'Jane Doe',
  25. time: '2016-04-10'
  26. }
  27. }
  28. });
  29. </script>
  30. </body>
  31. </html>

运行结果:
在这里插入图片描述
为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性:

发表评论

表情:
评论列表 (有 0 条评论,89人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Vue条件渲染

            本博客记录了小编在学习Vue过程中的体会与感悟,简单来说就是小编的学习笔记,学习地址主要为Vue的官网,官网地址为:[《Vue官方文档》][Vue]。相关学习笔