vue中的v-for循环

1.v-for遍历普通数组

in前面如果是一个变量,那么该变量保存的是数组中的数据in前面如果是两个变量,那么第一个变量保存的是数组中的数据,第二个变量保存的是下标。

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
 
<body>
    <div id="app">
        <!-- 绑定事件 v-on: 简写为@ -->
        <button @click="add">点击在数组最后添加元素</button>
        <ul style="list-style-type: none;">
            <!-- item是数组里面的元素  index是数组的下标 -->
            <li v-for="(item,index) in list">{{index}}-{{item}}</li>
        </ul>
 
    </div>
    <script src="/vue.js"></script>
    <script>
 
        new Vue({
            el: '#app',
            data: {
                list: ['猪方', '战神', '小金子', '楠神']
            },
            methods: {
                add() {
                    this.list.push('黑牛')
                }
            },
        })
    </script>
</body>
 
</html>

2.v-for遍历对象

如果是一个变量,那么保存的是对象中的属性值
如果是两个变量,那么第一个变量保存的是属性值,第二个变量保存的是属性名
如果是三个变量,那么第一个变量保存的是属性值,第二个变量保存的是属性名,第三个变量保存的是下标

v-for=”o1 in obj” o1:属性值
v-for=”(o1,o2) in obj” o1:属性值 o2:属性名
v-for=”(o1,o2,o3) in obj” o1:属性值 o2:属性名 o3:下标

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
 
<body>
    <div id="app">
        <ul>
            <li v-for="item in obj">{{item}}</li>
            <hr>
            <li v-for="(val,key) in obj">{{ key }}-{{ val }}</li>
 
        </ul>
    </div>
 
    <script src="./vue.js"></script>
 
    <script>
        new Vue({
            el: '#app',
            data: {
                obj: {
                    name: '卡拉米',
                    age: 16,
                    sex: '男',
 
                }
            }
        })
    </script>
</body>
 
</html>

3.v-for循环数字

in后面不仅可以放数组、对象数组、对象,还可以放数字
在in前面用一个变量存储当前次数,注意:此变量是从1开始,而不是从0开始

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
 
<body>
    <div id="app">
        <ul style="list-style-type: none;">
            <!-- v-for='遍历的数 in 遍历的范围' -->
            <li v-for="num in 9">{{num}}</li>
        </ul>
    </div>
    <script src="/vue.js"></script>
    <script>
        new Vue({
            el: '#app',
 
        })
 
    </script>
</body>
 
</html>

4. Key是什么?

Key 特殊属性主要用做 Vue 的虚拟 DOM 算法在将新节点列表与旧列表进行比较时识别 VNode 的提示。在没有键的情况下,Vue 使用一种算法来最小化元素移动,并尝试尽可能多地就地修补/重用相同类型的元素。使用键,它将根据键的顺序更改对元素进行重新排序,并且不再存在键的元素将始终被删除/销毁。

有 Key

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <!-- @click="list.splice(下标,删除的数量,添加的元素)" -->
        <button @click="list.splice(1,0,{name:'狗屎',age:11,sex:'男',id:4})">点击添加对象</button>
        <ul>
            <li v-for="item in list" :key="item.id">
                <!-- 单选框 -->
                <input type="checkbox">
                <!-- 行内元素 -->
                <span>{{item.name}}</span>
            </li>
        </ul>
    </div>
    <script src="/vue.js"></script>
    <script>
        new Vue({
            el:'#app',
            data:{
                list:[
                    {name:'战神',age:18,sex:'男',id:1},
                    {name:'金子',age:18,sex:'男',id:2},
                    {name:'铜牌',age:18,sex:'男',id:3}
                ]
            }
        })
    </script>
</body>
</html>

没有 Key

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <!-- @click="list.splice(下标,删除的数量,添加的元素)" -->
        <button @click="list.splice(1,0,{name:'狗屎',age:11,sex:'男',id:4})">点击添加对象</button>
        <ul>
            <li v-for="item in list">
                <!-- 单选框 -->
                <input type="checkbox">
                <!-- 行内元素 -->
                <span>{{item.name}}</span>
            </li>
        </ul>
    </div>
    <script src="/vue.js"></script>
    <script>
        new Vue({
            el:'#app',
            data:{
                list:[
                    {name:'战神',age:18,sex:'男',id:1},
                    {name:'金子',age:18,sex:'男',id:2},
                    {name:'铜牌',age:18,sex:'男',id:3}
                ]
            }
        })
    </script>
</body>
</html>
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇