附加练习-1.帅哥美女走一走
目标: 点击按钮, 改变3个li的顺序, 在头上的就到末尾.
提示: 操作数组里的顺序, v-for就会重新渲染li
代码演示
<template>
<div>
<ul>
<li v-for="item in myArr" :key="item">{{ item }}</li>
</ul>
<button @click="btn">走一走</button>
</div>
</template>
<script>
export default {
data() {
return {
myArr: ["帅哥", "美女", "程序猿"],
};
},
methods: {
btn() {
// 头部数据加入到末尾
this.myArr.push(this.myArr[0]);
// 再把头部的数据删除掉
this.myArr.shift();
},
},
};
</script>
附加练习-2.加加减减
目标: 点击生成按钮, 新增一个li(随机数字)和删除按钮, 点击删除按钮, 删除对应的li和值
提示: 数组渲染列表, 生成和删除都围绕数组操作
代码演示
<template>
<div>
<ul>
<li v-for="(item, ind) in arr" :key="item">
<span>{{ item }}</span>
<button @click="del(ind)">删除</button>
</li>
</ul>
<button @click="add">生成</button>
</div>
</template>
<script>
export default {
data() {
return {
arr: [1, 5, 3],
};
},
methods: {
add() {
this.arr.push(Math.floor(Math.random() * 20));
},
del(index) {
this.arr.splice(index, 1);
},
},
};
</script>
附加练习-3.购物车
目标: 完成商品浏览和删除功能, 当无数据给用户提示
-
需求1: 根据给的初始数据, 把购物车页面铺设出来
-
需求2: 点击对应删除按钮, 删除对应数据
-
需求3: 当数据没有了, 显示一条提示消息
html+css和数据代码结构(==可复制接着写==)
<template>
<div>
<table class="tb">
<tr>
<th>编号</th>
<th>品牌名称</th>
<th>创立时间</th>
<th>操作</th>
</tr>
<!-- 循环渲染的元素tr -->
<tr>
<td>1</td>
<td>车名</td>
<td>2020-08-09</td>
<td>
<button>删除</button>
</td>
</tr>
<tr>
<td colspan="4">没有数据咯~</td>
</tr>
</table>
</div>
</template>
<script>
export default {
data() {
return {
list: [
{ id: 1, name: "奔驰", time: "2020-08-01" },
{ id: 2, name: "宝马", time: "2020-08-02" },
{ id: 3, name: "奥迪", time: "2020-08-03" },
],
};
},
};
</script>
<style>
#app {
width: 600px;
margin: 10px auto;
}
.tb {
border-collapse: collapse;
width: 100%;
}
.tb th {
background-color: #0094ff;
color: white;
}
.tb td,
.tb th {
padding: 5px;
border: 1px solid black;
text-align: center;
}
.add {
padding: 5px;
border: 1px solid black;
margin-bottom: 10px;
}
</style>
<template>
<div>
<table class="tb">
<tr>
<th>编号</th>
<th>品牌名称</th>
<th>创立时间</th>
<th>操作</th>
</tr>
<!-- 循环渲染的元素tr -->
<tr v-for="(item,index) in list" :key="item.id">
<td>{{item.id}}</td>
<td>{{item.name}}</td>
<td>{{item.time}}</td>
<td>
<button @click="del(index)">删除</button>
</td>
</tr>
<tr v-if="list.length === 0">
<td colspan="4">没有数据咯~</td>
</tr>
</table>
</div>
</template>
<script>
export default {
data() {
return {
list: [
{ id: 1, name: "奔驰", time: "2020-08-01" },
{ id: 2, name: "宝马", time: "2020-08-02" },
{ id: 3, name: "奥迪", time: "2020-08-03" },
],
};
},
methods: {
del(index) {
// 删除按钮 - 得到索引, 删除数组里元素
this.list.splice(index, 1);
},
},
};
</script>