Vue(Vue2+Vue3)——15.列表渲染

简介: Vue(Vue2+Vue3)——15.列表渲染

15 列表渲染


列表渲染的东西比较多,我们通过案例一步一步学习列表渲染的相关知识


15.1 基本列表


首先写一个基本的列表,想要把persons列表里面的对象展示在li里面,我们可以使用一个指令:v-for


15.2 v-for


vue提供给我们做循环的指令,语法类似js的for in遍历

v-for="person in persons"

使用v-for循环数组

列表数据就被循环出来了

上面只是简单使用v-for做一个循环,还有很多小细节,逐一说下



15.2 细节问题


上面我们使用v-for做循环的时候,缺少了一个重要的属性,那就是key,那么key的作用是什么呢?


15.2.1 key的使用


关于key的描述,官网是这么说的

key可以理解成一个唯一的标识符,类似于身份证,作为数据的唯一凭证,我们在使用v-for做循环处理的时候,应该是有:key去指定这个唯一标识

虽然不写key也不会报错,也没有任何警告,但是尽量还是按照规范写上


15.2.2 v-for两个参数


上面的案例,只是写了一个参数进行处理,其实v-for是有两个参数的

参数1是循环体的完整对象数据,参数2是索引下标

<li v-for="a,b in persons" :key="a.id">
                {{a}}-{{b}}
</li>

注意:使用的使用不要少了冒号,是:key,不是key,不然就解析不了表达式了


15.2.3 使用index作为key


既然我们已经知道了,第二个参数是索引,那么我们也可以把第二个参数作为key唯一标识去使用

<li v-for="person,index in persons" :key="index">
                {{person.name}}-{{person.age}}
 </li>


15.2.4 参数的括号可有可无


参数的括号是可以可有可无的,但是建议加上,不然一些老的脚手架可能会报错


15.2.5 of代替in


v-for可以使用of代替in,作用是一样的,和js简直一模一样


15.2.6 遍历对象


难道v-for只能遍历上面定义的persons数组类型吗,当然不是,也可以遍历对象类型


15.2.7 遍历字符串(用的少)


不仅仅可以遍历数组和对象,还可以遍历字符串


15.2.7 遍历指定次数(用的少)


这种和遍历字符串一样,通常用的不多


15.3 总结


  • v-for指令
  •  1.用于展示列表数据
  •  2 语法 v-for=(item,index) in(of) xxx :key="yyy"
  •  3 可遍历:数组(用的多),对象(用的多),字符串(用的少),指定次数(用的少)

代码奉上

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>初始vue</title>
    <!-- 引入vue.js -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <div id="root">
         <!-- 遍历数组 -->
         <h2>人员列表</h2>
       <ul>
            <li v-for="(person,index) of persons" :key="index">
                {{person.name}}-{{person.age}}
            </li>  
       </ul>
        <!-- 遍历对象 -->
        <ul>
            <h2>商品信息</h2>
            <li v-for="(value,key) in shop" :key="key">
                {{key}}-{{value}}
            </li>
        </ul>
         <!-- 遍历字符串 -->
         <ul>
            <h2>遍历字符串</h2>
            <li v-for="(char,index) in str" :key="index">
                {{char}}-{{index}}
            </li>
        </ul>
        <!-- 遍历指定次数 -->
        <ul>
            <h2>遍历指定次数</h2>
            <li v-for="(char,index) in str" :key="index">
                {{char}}-{{index}}
            </li>
        </ul>
          <!-- 遍历指定次数 -->
          <ul>
            <h2>遍历指定次数</h2>
            <li v-for="(number,index) in 10" :key="index">
                {{index}}-{{number}}
            </li>
        </ul>
    </div>
</body>
<script type="text/javascript">
   const vm=  new Vue({
        el:'#root',
        data:{
            persons:[
                {id:'001',name:'张三',age:'18'},
                {id:'002',name:'李四',age:'19'},
                {id:'003',name:'王五',age:'20'}
            ],shop:{
                name:'可乐可乐',
                price:'3.0'
            },
            str:'vue'
        }
    })
</script>
</html>
相关文章
|
1天前
|
移动开发 前端开发
ruoyi-nbcio-plus基于vue3的flowable为了适配文件上传改造VForm3的代码记录
ruoyi-nbcio-plus基于vue3的flowable为了适配文件上传改造VForm3的代码记录
|
1天前
|
JavaScript 前端开发
vue2升级到vue3的一些使用注意事项记录(四)
vue2升级到vue3的一些使用注意事项记录(四)
|
1天前
|
移动开发 前端开发
ruoyi-nbcio-plus基于vue3的flowable收回任务后重新进行提交表单的处理
ruoyi-nbcio-plus基于vue3的flowable收回任务后重新进行提交表单的处理
|
1天前
|
移动开发 前端开发
ruoyi-nbcio-plus基于vue3的flowable多租户机制
ruoyi-nbcio-plus基于vue3的flowable多租户机制
|
1天前
|
移动开发 前端开发
ruoyi-nbcio-plus基于vue3的flowable的消息中心我的消息的升级修改
ruoyi-nbcio-plus基于vue3的flowable的消息中心我的消息的升级修改
|
2天前
|
JavaScript
VUE里的find与filter使用与区别
VUE里的find与filter使用与区别
11 0
|
2天前
|
JavaScript
vue页面加载时同时请求两个接口
vue页面加载时同时请求两个接口
|
2天前
|
JavaScript
vue里样式不起作用的方法,可以通过deep穿透的方式
vue里样式不起作用的方法,可以通过deep穿透的方式
10 0
|
2天前
|
移动开发 JavaScript 应用服务中间件
vue打包部署问题
Vue项目`vue.config.js`中,`publicPath`设定为&quot;/h5/party/pc/&quot;,在线环境基于打包后的`dist`目录,而非Linux的`/root`。Nginx代理配置位于`/usr/local/nginx/nginx-1.13.7/conf`,包含两个相关配置图。
vue打包部署问题
|
2天前
|
JavaScript 前端开发
iconfont 图标在vue里的使用
iconfont 图标在vue里的使用
11 0