首页 > 其他分享 >14-Vue核心-列表渲染

14-Vue核心-列表渲染

时间:2023-09-19 22:55:40浏览次数:33  
标签:index 遍历 14 渲染 age 列表 Vue name

使用 v-for 做列表渲染

我们可以用 v-for 指令基于一个数组来渲染一个列表,用于展示列表数据。

语法:

v-for = "(item, index) in items"  :key="xxx" 或者 v-for = "(item, index) of items"  :key="xxx" 

这里可以使用 of 替代 in 作为分隔符,因为它更接近 JavaScript 迭代器的语法。 :key 动态绑定key,可以理解为index,是遍历对象的唯一标识。   v-for 可以遍历以下类型: 1)遍历数组
<!--  遍历数组  -->
<h2>人员列表(遍历数组,用的多)</h2>
<ul>
    <!--  v-for 用于展示列表数据  -->
    <!--  :key 动态绑定key,可以理解为index,是遍历对象的唯一标识  -->
    <li v-for="(p,index) in persons" :key="index">
        姓名:{{p.name}}  年龄:{{p.age}}
    </li>
</ul>
 new Vue({
                el:"#root",
                data(){
                    return{
                        persons:[
                            {id:"001",name:"马铃薯1",age:20},
                            {id:"002",name:"马铃薯2",age:21},
                            {id:"003",name:"马铃薯3",age:22}
                        ]
                    }
                }
            })

2)遍历对象

<!--  遍历对象  -->
<h2>汽车信息(遍历对象)</h2>
<ul>
    <li v-for="(value,k) in car" :key="k">
        {{k}} : {{value}}
    </li>
</ul>
new Vue({
                el:"#root",
                data(){
                    return{
                        car:{
                            name:"奥迪A4L",
                            price:"27万",
                            color:"白色"
                        }
                    }
                }
            })

3)遍历字符串(用的少)

<!--  遍历字符串  -->
<h2>测试遍历字符串(用的少)</h2>
<ul>
    <li v-for="(value,index) in str" :key="index">
        {{index}} : {{value}}
    </li>
</ul>
new Vue({
                el:"#root",
                data(){
                    return{
                        str:"马铃薯的测试"
                    }
                }
            })

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

<!--  遍历指定次数  -->
<h2>测试遍历指定次数(用的少)</h2>
<ul>
    <li v-for="(number,index) in 5" :key="index">
        {{index}} : {{number}}
    </li>
</ul>

 

基本列表渲染案例

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>基本列表</title>
        <!--  引入Vue  -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!--  准备好一个容器  -->
        <div id="root">
            <!--  遍历数组  -->
            <h2>人员列表(遍历数组,用的多)</h2>
            <ul>
                <!--  v-for 用于展示列表数据  -->
                <!--  :key 动态绑定key,可以理解为index,是遍历对象的唯一标识  -->

                <!--<li v-for="p in persons" :key="p.id">-->
                <!--    姓名:{{p.name}}  年龄:{{p.age}}-->
                <!--</li>-->
                <li v-for="(p,index) in persons" :key="index">
                    姓名:{{p.name}}  年龄:{{p.age}}
                </li>
            </ul>
            <!--  遍历对象  -->
            <h2>汽车信息(遍历对象)</h2>
            <ul>
                <li v-for="(value,k) in car" :key="k">
                    {{k}} : {{value}}
                </li>
            </ul>
            <!--  遍历字符串  -->
            <h2>测试遍历字符串(用的少)</h2>
            <ul>
                <li v-for="(value,index) in str" :key="index">
                    {{index}} : {{value}}
                </li>
            </ul>
            <!--  遍历指定次数  -->
            <h2>测试遍历指定次数(用的少)</h2>
            <ul>
                <li v-for="(number,index) in 5" :key="index">
                    {{index}} : {{number}}
                </li>
            </ul>
        </div>

        <script type="text/javascript">
            // 阻止 vue 在启动时生成生产提示
            Vue.config.productionTip = false

            new Vue({
                el:"#root",
                data(){
                    return{
                        persons:[
                            {id:"001",name:"马铃薯1",age:20},
                            {id:"002",name:"马铃薯2",age:21},
                            {id:"003",name:"马铃薯3",age:22}
                        ],
                        car:{
                            name:"奥迪A4L",
                            price:"27万",
                            color:"白色"
                        },
                        str:"马铃薯的测试"
                    }
                }
            })
        </script>

    </body>
</html>

 

标签:index,遍历,14,渲染,age,列表,Vue,name
From: https://www.cnblogs.com/REN-Murphy/p/17716071.html

相关文章

  • 双通道3G/14bit采集+双通道12.6G/16bit回放卡
     UDFMC-704 双通道接收+双通道发射FMC模块满足VITA57.1单宽、导冷规范。模块ADC支持进口AD9689-2000、AD9689-2600、AD6688、AD9208或国产GMS018采集芯片,DAC支持AD9171/AD9172/AD9173/AD9174/AD9175/AD9176回放芯片,输入支持直流或交流耦合方式,输出支持选配放大器。FMC子卡还......
  • 洛谷 P1469. 找筷子
    找筷子题目描述经过一段时间的紧张筹备,电脑小组的“RP餐厅”终于开业了,这天,经理LXC接到了一个定餐大单,可把大家乐坏了!员工们齐心协力按要求准备好了套餐正准备派送时,突然碰到一个棘手的问题:筷子!CX小朋友找出了餐厅中所有的筷子,但遗憾的是这些筷子长短不一,而我们都知道筷子......
  • Vue3 watch揭秘:基本用法与原理深度解析
    Vue3中的watch函数用于监听数据的变化,当数据发生变化时,可以执行一些操作。watch函数的基本用法如下:import{ref,watch}from'vue';exportdefault{setup(){constcount=ref(0);watch(count,(newValue,oldValue)=>{console.log(`count的新值为:${......
  • 洛谷 P1143. 进制转换
    进制转换题目描述请你编一程序实现两种不同进制之间的数据转换。输入格式共三行,第一行是一个正整数,表示需要转换的数的进制$n\(2\len\le16)$,第二行是一个$n$进制数,若$n>10$则用大写字母$\verb!A!\sim\verb!F!$表示数码$10\sim15$,并且该$n$进制数对应的十进制的......
  • vue_vueRouter同组件跳转失败
    目录场景再现资料查询解决场景再现现有一个Article页面,通过/article/:id来匹配不同的文章页面,当我需要实现跳转到上一篇或下一篇时,即从/article/:id跳转另一个/article/:id时,发现浏览器中只有地址变化了,但是页面的很多组件,包括文章内容都没有刷新,资料查询这......
  • Vue之与后端交互的三种方式、显示小电影案例、计算属性、监听属性、Vue生命周期、组件
    与后端交互的三种方式后端写了一堆接口前段会了前后端要打通===》从前端发送ajax===》核心:用js发送http请求,接收返回原生js,可以开启可以开启ajax,但是原生js开启,比较麻烦,需要做浏览器兼容,有坑(基本不写)jq,写了个兼容所有浏览器的$.ajax(),不仅仅有ajax,还封装了很多d......
  • 14 盒子模型
    盒子模型:margin:外边距border:边框pading:内边距元素本身<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>盒子模型</title><style>body{margin:0000;}#d1{......
  • vue-组件
    1.组件的介绍和使用组件中是可以套组件的组件就是:扩展HTML元素,封装可重用的代码,目的就是复用例如:有一个轮播图,可以在很多页面中使用,一个轮播有js,css,html组件把js,css,html放到一起,有逻辑,有样式,有html组件的分类:-全局组件:可以放在根中,可以在所有组件中使用-局......
  • vue 是先渲染 template 还是 script 呢?
    在Vue中,模板(template)和脚本(script)是同时被处理的,而不是按顺序渲染的。Vue的渲染流程如下:1.解析模板:Vue首先会解析模板中的HTML结构,并识别出模板中的指令和插值表达式。2.创建虚拟DOM:基于解析的模板,Vue会创建一个虚拟DOM树。3.执行脚本:Vue会执行组件实例的脚本部分,其中包括生命周......
  • vue 实现input框的宽度自适应?
    要实现Vue中input框的宽度自适应,可以使用CSS的`width`属性和Vue的数据绑定来实现。下面是一个简单的示例:1.在Vue组件的模板中,使用一个div包裹input框,并为该div设置一个类名,例如:```html<template> <divclass="input-wrapper">  <inputtype="text"v-model="inputValue"> ......