以下是给初学Vue的小伙伴的三个练手小案例,希望对新手有一点点帮助~

【案例1】

要求:点击按钮, 依次改变3个li的顺序

效果图:

思路分析:利用数组的增加和删除方法实现

代码:
<template> <div id="app"> <ul> <li v-for="(item , idx) in arr" :key="idx">{
{item}}</li> <button @click="fn">走一走</button> <hr> </ul> </div> </template>
<script> export default { data() { return { arr: ['1.四宫辉夜', '2.藤原千花', '3.白银御行',
'4.石上优'] } }, methods: { fn() { let firstDle = this.arr.shift()
console.log(firstDle); //数组删除操作返回的是被删除的元素 console.log(this.arr.push(firstDle))
//数组新增操作返回的是数组的长度 } }, } </script> <style> body { background-color: #ccc; }
#app { width: 400px; margin: 20px auto; background-color: #fff; border: 4px
solid blueviolet; border-radius: 1em; box-shadow: 2px 3px 3px rgba(0, 0, 0,
0.5); padding: 1em 2em 2em; } h3 { text-align: center; } .title { display:
flex; justify-content: space-between; align-items: center; border: 1px solid
#000; padding: 0 1em; } .title h4 { line-height: 2; margin: 0; } .container {
border: 1px solid #000; padding: 0 1em; } .btn { /* 鼠标改编成小手的形状 */ cursor:
pointer; } </style>

【案例2】

要求:点击生成按钮, 新增一个li(随机数字)和删除按钮, 点击删除按钮, 删除对应的li和值

 效果图:

思路分析:利用数组驱动视图,增加和删除操作都围绕数组展开,摒弃之前的dom节点操作

 代码:
<template> <div id="app"> <ul> <li v-for="(item , idx) in arr" :key="idx"> {{
item }} <button @click="fn1(idx)">删除</button> </li> <hr> </ul> <button
@click="fn">点击生成随机数</button> </div> </template> <script> export default {
data() { return { arr: [Math.floor(Math.random() * 100),
Math.floor(Math.random() * 100)], } }, methods: { fn() { let num =
Math.floor(Math.random() * 100) this.arr.push(num) }, fn1(idx) {
this.arr.splice(idx, 1) } }, } </script>
 

 【案例3】

要求:完成商品浏览和删除功能, 当无数据时给用户提示信息

效果图:

思路分析:依旧是数据驱动视图,利用数组的相关方法去实现,注意条件判断

代码:
<template> <div id="app"> <table class="tb"> <tr> <th>编号</th> <th>品牌名称</th>
<th>创立时间</th> <th>操作</th> </tr> <!-- 循环渲染的元素tr --> <tr v-for="(item , idx) in
list" :key="idx"> <td>{{item.id}}</td> <td>{{item.name}}</td> <td>{
{item.time}}</td> <td> <button @click="list.splice(idx,1)">删除</button> </td>
</tr> <!-- 优化后的代码 --> <tr v-if="list.length == 0"> <td colspan="4">{
{mesg}}</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" }, ], mesg:
'没有数据咯~' }; } }; </script>
 

技术
今日推荐
PPT
阅读数 121
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:766591547
关注微信