布局切换
发布时间 2023-06-05 15:57:33作者: GTK
习题链接
布局切换
任务
我们现在有一个购物车列表,要实现这么个功能
在浏览商品列表的时候,我们通过点击一个小小的按钮图标,就能快速将数据列表在大图(通常是两列)和列表两种布局间来回切换。
分类 :Vue
关键点
- 使用axios请求数据保存到data中
- axios中最常用的就是get与psot,axios是基于promise的异步操作,所以是可以是使用then,catch方法来处理结果的,在本题里面就是一个简单的请求
- axios.get(地址)
.then(res=>{当请求成功,返回的结果在此处操作})
.catch(err=>{执行失败的操作})
.finally(()=>{成功或失败都将执行的操作})
- v-指令的使用
- @click点击事件,进行切换布局的函数 控制是否渲染
- v-bind绑定属性,修改class 用法 => :class="{'grid-icon':true, active:isActive}"
- 使用v-if或v-show进行显示隐藏,这两则的区别是v-if渲染或不渲染节点,v-show是控制的display的值进行显示隐藏
代码实现 && 完整的代码
- data中的数据
data: {
goodsList: [],
isActive:true
},
- 完成数据请求
mounted() {
axios.get('goodsList.json').then(res=>{
console.log(res.data);
this.goodsList = res.data;
})
},
- 点击事件
html部分<div class="bar">
<a @click="changeStyle(true)" :class="{'grid-icon':true, active:isActive}"></a>
<a @click="changeStyle(false)" :class="{'list-icon':true, active:!isActive}"></a>
</div>
js部分changeStyle(data){
this.isActive = data;
}
- 渲染列表
<ul class="grid" v-if="isActive">
<li v-for="item in goodsList">
<a :href="item.url" target="_blank"> <img :src="item.image.large" /></a>
</li>
</ul>
<ul class="list" v-if="!isActive">
<li v-for="item in goodsList">
<a :href="item.url" target="_blank"> <img :src="item.image.small" /></a>
<p>{{item.title}}</p>
</li>
</ul>