vue-5-列表渲染
一个数组的v-for
<ul id="example-1">
<li v-for="item in items">
{{ item.message }}
</li>
</ul>
var example1 = new Vue({
el: '#example-1',
data: {
items: [
{ message: 'Foo' },
{ message: 'Bar' }
]
}
})
//也可以用 of 替代 in 作为分隔符
<div v-for="item of items"></div>
//支持一个可选的第二个参数为当前项的索引
<ul id="example-2">
<li v-for="(item, index) in items">
{{ parentMessage }} - {{ index }} - {{ item.message }}
</li>
</ul>
var example2 = new Vue({
el: '#example-2',
data: {
parentMessage: 'Parent',
items: [
{ message: 'Foo' },
{ message: 'Bar' }
]
}
})
一个对象的v-for:
<div v-for="(value, key) in object">
{{ key }}: {{ value }}
</div> //第三个参数为索引
<div v-for="(value, key, index) in object">
key:
<div v-for="item in items" :key="item.id">
<!-- 内容 -->
</div>
//v-bind 来绑定唯一动态值,用来响应数据项的顺序改变等
数组更新检测:
//变异方法,会改变被这些方法调用的原始数组,会观察数组,触发视图更新
push()
pop()
shift()
unshift()
splice()
sort()
reverse()
//替换数组:返回一个新数组,如filter(), concat() 和 slice()
example1.items = example1.items.filter(function (item) {
return item.message.match(/Foo/)
})
数组检测注意事项:
?是不适当的做法,+是替代方案;
? 当你利用索引直接设置一个项时,例如:vm.items[indexOfItem] = newValue
+Vue.set(example1.items, indexOfItem, newValue)
+example1.items.splice(indexOfItem, , newValue)
//splice返回的是含有被删除的元素的新数组 ? 当你修改数组的长度时,例如:vm.items.length = newLength
+example1.items.splice(newLength)
对象检测注意事项:
//对于已经创建的实例,Vue 不能动态添加根级别的响应式属性
//使用 Vue.set(object, key, value) 方法向嵌套对象添加响应式属性 var vm = new Vue({
data: {
userProfile: {
name: 'Anika'
}
}
}) Vue.set(vm.userProfile, 'age', ) //vm.$set 实例方法,它只是全局 Vue.set 的别名
this.$set(this.userProfile, 'age', ) //赋多个属性,使用Object.assign或者_.extend()时,组合成一个新对象
this.userProfile = Object.assign({}, this.userProfile, {
age: ,
favoriteColor: 'Vue Green'
})
过滤、排序
//不实际改变或重置原始数据,可以创建返回过滤或排序数组的计算属性。
<li v-for="n in evenNumbers">{{ n }}</li>
data: {
numbers: [ , , , , ]
},
computed: {
evenNumbers: function () {//返回偶数
return this.numbers.filter(function (number) {
return number % ===
})
}
}
//或者,一个method();
<li v-for="n in even(numbers)">{{ n }}</li>
data: {
numbers: [ , , , , ]
},
methods: {
even: function (numbers) {
return numbers.filter(function (number) {
return number % ===
})
}
}
v-for 渲染多个元素
<ul>
<template v-for="item in items">
<li>{{ item.msg }}</li>
<li class="divider"></li>
</template>
</ul>
v-for与v-if在同一个元素上时,v-for的优先级更高
<li v-for="todo in todos" v-if="!todo.isComplete">
{{ todo }}
</li>
//每个循环中都会调用v-if
一个组件的v-for
<my-component
v-for="(item, index) in items"
v-bind:item="item"
v-bind:index="index"
v-bind:key="item.id"
></my-component>
//key是必需项
为了传递迭代数据到组件里,我们要用 props
Vue.component('todo-item', {
template: '\
<li>\
{{ title }}\
<button v-on:click="$emit(\'remove\')">X</button>\
</li>\
',
props: ['title']
})
<li
is="todo-item"
v-for="(todo, index) in todos"
v-bind:key="todo.id"
v-bind:title="todo.title"
v-on:remove="todos.splice(index, 1)"
></li>
vue-5-列表渲染的更多相关文章
- vue基础——列表渲染
列表渲染 用 v-for 把一个数组对应为一组元素 我们用 v-for 指令根据一组数组的选项列表进行渲染.v-for 指令需要使用 item in items 形式的特殊语法, items 是源数据 ...
- 【03】Vue 之列表渲染及条件渲染
3.1. 条件渲染 有时候我们要根据数据的情况,决定标签是否进行显示或者有其他动作.最常见的就是,表格渲染的时候,如果表格没有数据,就显示无数据.如果有数据就显示表格数据. Vue帮我们提供了一个v- ...
- vue基础---列表渲染
首先简单回顾下v-for‘指令 <ol id="list_area"> <li v-for="book in books">{{book ...
- 一起学Vue之列表渲染
在Vue开发中,列表数据绑定非常简单易用,本文主要通过一些简单的小例子,讲述v-for的使用方法,仅供学习分享使用,如有不足之处,还请指正. 用 v-for 把一个数组对应为一组元素 我们可以用 v- ...
- 前端框架之Vue(6)-列表渲染
用v-for把一个数组对应为一组元素 我们用 v-for 指令根据一组数组的选项列表进行渲染. v-for 指令需要使用 item in items 形式的特殊语法, items 是源数据数组并且 i ...
- vue之列表渲染
一.v-for循环用于数组 v-for 指令根据一组数组的选项列表进行渲染. 1.v-for 指令需要使用 item in items 形式的特殊语法,items 是源数据数组名, item 是数组元 ...
- vue笔记-列表渲染
用v-for把一个数组对应为一组元素 使用方法:v-for="(item,index) in items"//也可以使用of替代in { items:源数组 item:数组元素迭代 ...
- 关于vue.js中列表渲染练习
html: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8 ...
- 03-Vue入门系列之Vue列表渲染及条件渲染实战
3.1. 条件渲染 有时候我们要根据数据的情况,决定标签是否进行显示或者有其他动作.最常见的就是,表格渲染的时候,如果表格没有数据,就显示无数据.如果有数据就显示表格数据. Vue帮我们提供了一个v- ...
- 3-7 Vue中的列表渲染
举个案例:循环data中的list的值在div中,并显示相应的index值. 关于数组的循环: //显示效果如下图: //一般的列表渲染最好带一个key值,要把key值设置为唯一值的话,可以选择in ...
随机推荐
- Codeforces 813E - Army Creation
813E - Army Creation 思路: 线段树+二分 先预处理每个点往后走k步的下标 线段树二叉树的每个节点用vector维护这些下标,给这些下标排个序 询问区间L,R,那么把下标小于等于R ...
- web前端名人的博客微博Githu
尤雨溪 vuejs作者 王垠 http://www.yinwang.org/ 20位活跃在Github上的国内技术大牛 1. lifesinger(玉伯) Github主页: ht ...
- 数据结构(C语言版)-第7章 查找
7.1 查找的基本概念 查找表: 由同一类型的数据元素(或记录)构成的集合静态查找表: 查找的同时对查找表不做修改操作(如插入和删除)动态查找表: 查找的同时对查找表具有修改操作关键 ...
- Redisson实现分布式锁(一)
为什么要使用分布式锁? 单机情况下,多线程同时访问并改变临界资源(可变共享变量),将会使得这个变量不可预知,所以我们引入了同步(lock—synchronized).但在分布式场景下(多机部署),业务 ...
- 掌握R语言中的apply函数族(转)
转自:http://blog.fens.me/r-apply/ 前言 刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是 ...
- English trip V1 - B 5.Is It Cold Outside? 外面很冷? Teacher:Corrine Key: weather
In this lesson you will learn to talk about the weather. 本节课将学习到关于天气 课上内容(Lesson) 词汇(Key Word ) # 关于 ...
- P3489 付公主的背包
题意:n<=1e5,m<=1e5,跑n个物品1到m容量的完全背包. 考虑暴力的做法就是把一些1/(1+x^a)的多项式乘起来即可. 考虑优化,取一下ln,转化为加法,然后exp回去就好了.
- smarty插件
smarty插件 1.目录:放在Smarty类库下的plugins目录下面(默认存放的都是smarty自带的插件) smarty3.0提供了自定义插件目录的方式: $ ...
- Coprime Arrays CodeForces - 915G (数论水题)
反演一下可以得到$b_i=\sum\limits_{d=1}^i{\mu(i)(\lfloor \frac{i}{d} \rfloor})^n$ 整除分块的话会T, 可以维护一个差分, 优化到$O(n ...
- 【JS】【1】JavaScript屏蔽Backspace键(避免点击后页面产生回退)
前言: 1,参考资料:JavaScript屏蔽Backspace键 - 孤傲苍狼 - 博客园(http://www.cnblogs.com/xdp-gacl/p/3785806.html) 2,参考的 ...