赞
踩
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>
如果是一个变量,那么保存的是对象中的属性值
如果是两个变量,那么第一个变量保存的是属性值,第二个变量保存的是属性名
如果是三个变量,那么第一个变量保存的是属性值,第二个变量保存的是属性名,第三个变量保存的是下标
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>
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>
Key 特殊属性主要用做 Vue 的虚拟 DOM 算法在将新节点列表与旧列表进行比较时识别 VNode 的提示。在没有键的情况下,Vue 使用一种算法来最小化元素移动,并尝试尽可能多地就地修补/重用相同类型的元素。使用键,它将根据键的顺序更改对元素进行重新排序,并且不再存在键的元素将始终被删除/销毁。
Vue内部会对有无Key值的for循环进行不同方法的处理
有 Key, 进行 patchKeyedChildren
- <!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 ,进行 patchUnKeyedChildren
- <!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>
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。