【vue2项目总结】——动态渲染

文章目录

  • 主页渲染
    • 封装接口
    • 页面调用
    • 传到子组件
  • 搜索列表渲染
    • 根据关键字搜索
    • 分类id搜索

主页渲染

封装接口

封装准备接口 api/home.js

import request from '@/utils/request'// 获取首页数据
export const getHomeData = () => {return request.get('/page/detail', {params: {pageId: 0}})
}

页面调用

import GoodsItem from '@/components/GoodsItem.vue'
import { getHomeData } from '@/api/home'
export default {name: 'HomePage',components: {GoodsItem},data () {return {bannerList: [],navList: [],proList: []}},async created () {const { data: { pageData } } = await getHomeData()this.bannerList = pageData.items[1].datathis.navList = pageData.items[3].datathis.proList = pageData.items[6].data}
}

接口数据结构
在这里插入图片描述
数据
在这里插入图片描述

传到子组件

把数据传到子组件

  <div class="goods-list"><GoodsItem v-for="item in proList" :key="item.goods_id" :item="item"></GoodsItem></div>

接收
在这里插入图片描述

搜索列表渲染

根据关键字搜索

在这里插入图片描述

1.计算属性,基于query 解析路由参数

computed: {querySearch () {return this.$route.query.search}
}

2.根据不同的情况,设置输入框的值

<van-search...:value="querySearch || '搜索商品'"
></van-search>

3.页面中基于 goodsName 发送请求,动态渲染

data () {return {page: 1,proList: []}
},
async created () {const { data: { list } } = await getProList({goodsName: this.querySearch,page: this.page})this.proList = list.data
}<div class="goods-list"><GoodsItem v-for="item in proList" :key="item.goods_id" :item="item"></GoodsItem>
</div>

分类id搜索

1 封装接口 api/category.js

import request from '@/utils/request'// 获取分类数据
export const getCategoryData = () => {return request.get('/category/list')
}

2.跳转传递
在这里插入图片描述
3 搜索页,基于分类 ID 请求

async created () {const { data: { list } } = await getProList({categoryId: this.$route.query.categoryId,goodsName: this.querySearch,page: this.page})this.proList = list.data
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/518461.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ThreeJs场景中添加视频

这节讲如何在threejs中添加一个视频的功能&#xff0c;在某些场景中可能会需要播放视频&#xff0c;比如在场景中方式一个大屏幕&#xff0c;大屏幕上需要播放视频&#xff0c;亦或者在场景中添加电视机的模型&#xff0c;电视机的画面上需要播放一些视频等。 其实添加视频和以…

Python读取influxDB数据库

1. influxDB连接 首先用InfluxDBStudio软件连接influxDB数据库来查看所有表&#xff1a; 2. 写sql语句来查询数据 然后和平时写sql查询语句一样&#xff0c;先创建连接client&#xff0c;然后调用其query函数来查询获取数据 self.client influxdb.InfluxDBClient(hostinflu…

Vue+SpringBoot打造校园疫情防控管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生2.2 老师2.3 学校管理部门 三、系统展示四、核心代码4.1 新增健康情况上报4.2 查询健康咨询4.3 新增离返校申请4.4 查询防疫物资4.5 查询防控宣传数据 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBoot…

制片管理工具:提高制片效率的必备工具

一、什么是制片管理工具 制片管理工具是一种为制片人提供支持和协助的软件或工具&#xff0c;并提供一种集中管理制作进度、任务分配、成本预算、资源管理和进度跟踪的方式。它可以帮助制片人在项目的开发、制作和发布方面更有效地进行规划和监督&#xff0c;确保整个流程能够…

线程安全——使用线程安全函数,多线程中执行fork引发的问题及如何解决

目录 一、引例 二、线程安全 三、多线程中执行fork 3.1 多线程中某个线程调用 fork()&#xff0c;子进程会有和父进程相同数量的线程吗? 3.2 父进程被加锁的互斥锁 fork 后在子进程中是否已经加锁 一、引例 在主线程和函数线程中进行语句分割并输出。 #include <stdi…

《Effective Modern C++》- 极精简版 1-4条

本文章属于专栏《业界Cpp进阶建议整理》 本文列出《Effective Modern C》的1-5条的个人理解的极精简版本。 Item1、模版类型推导 个人理解&#xff1a;推导规则是繁琐的&#xff0c;和运算符优先级一样&#xff0c;背下来没有意义&#xff0c;最好的办法是在使用中熟悉。常用的…

vue3: vscode自动补充ref变量的.value属性(解决方式)

操作一下步骤后&#xff0c; 然后重启vscode即可 效果图&#xff1a;

Doris入门

概念&#xff1a; 基于MPP设计理念实现的数据库&#xff0c;支持大数据集存储、实时数据分析&#xff0c;交互式数据分析等。 MPP&#xff1a;将任务并行分散至多个节点&#xff0c;由各节点单独计算&#xff0c;再将各节点计算结果汇总得到最终结果。 原理&#xff1a; FE&…

thinkphp5框架漏洞

条件&#xff1a; 根据ThinkPHP版本&#xff0c;如是5.x版本&#xff0c;即可使用ThinkPHP 5.x远程代码执行漏洞&#xff0c;无需登录&#xff0c;即可执行任意命令&#xff0c;获取服务器最高权限。 具体版本 5.x < 5.1.31 5.0.x< 5.0.23 框架介绍&#xff1a; Thi…

CC攻击的特征和防护措施

随着互联网的快速发展&#xff0c;网络攻击日益频繁。在目前的各种网络攻击中&#xff0c;CC攻击是一种常见的网络攻击手段之一。CC攻击&#xff08;也称为DDoS攻击&#xff09;是指通过大量请求或恶意流量向目标网站或服务器发送请求&#xff0c;以使其服务不可用。可能大家都…

Mysql date_format 格式化时间输出

网上的文章都是列一个大而全的表格&#xff0c;还有错误&#xff0c;我完全用不到那么多形式。遂自己开篇文章记录。 把datetime格式化为形如 2024-12-15 18:59:59的形式&#xff1a; %Y-%m-%d %H:%i:%S# 日期格式化输出select date_format(now(),%Y-%m-%d %H:%i:%S) time1,no…

如何通过3D线上科技展厅全方位展现企业创新实力?

随着数字化转型的加速&#xff0c;企业对于科技展示的需求日益增长&#xff0c;而3D线上科技展厅作为一种新兴的展示方式&#xff0c;正逐步成为企业展示科技成果、产品特性的重要工具。 一、全方位展示展品 线上科技展厅能够实现产品的全方位、多角度展示&#xff0c;这不仅增…