10前端项目----商品详情页/滚轮行为

商品详情页面

    • 商品详情组件
      • 发送请求获取相应商品详情信息
      • 组件展示数据
    • 优化一下路由配置代码
    • 滚轮自动置顶

商品详情组件

  • 路由配置

点击商品进行跳转—将Detail组件变成路由组件
从商品到详情,肯定需要传参(产品ID)告诉Detail是哪个商品,需要展示哪个商品的详情
router路由配置{ path:‘/detail/:id’, component:Detail }

  • 复习一下:声明式路由跳转传递参数

①模板字符串:

<!--query参数?区分,多个参数&间隔-->
<router-link :to="`/detail/?id=${goodList.id}`"><router-link/>
<!--params参数/区分,需要在路由配置中添加/:占位符-->
<router-link :to="`/about/detail/content/${msg.id}/${msg.message}`"></router-link>

②对象:

<router-link :to="{path:'/detail',query:{id: goodList.id}
}">
<router-link :to="{name:'Detail',params:{id: goodList.id}
}"></router-link>
  • 商品跳转router-link
    在goodList中:点击商品图片就可以跳转到Detail组件,并传递商品id
<router-link :to="`/detail/${goodList.id}`"><img :src='goodList.img'/></router-link>

发送请求获取相应商品详情信息

①API—>请求接口封装函数
接口URL:/api/item/{id} get请求

//api/index.js
export const reqGoodsInfo = id=>requests({url:`item/${id}`},method:'get');

②vuex—>获取产品信息

vuex中新增一个小模块detail,然后合并到大仓库(import 然后modules中添加detail)

//store/detail/index.js
import {reqGoodsInfo} from '@/api';
const state={goodInfo:{}//看返回的结果是对象还是数组
};
const actions={asyn getGoodInfo ({commit},id){let result = await reqGoodsInfo(id);if(result.code==200){commit('GETGOODINFO',result.data);}}
};
const mutations={GETGOODINFO(state,goodInfo){state.goodInfo = goodInfo;}
};
export default{state,actions,mutations
}

③派发action

在detail组件挂载完毕派发actions
mounted(){
this. s t o r e . d i s p a t h ( ′ g e t G o o d I n f o ′ , t h i s . store.dispath('getGoodInfo',this. store.dispath(getGoodInfo,this.route.params.id)
}

组件展示数据

获取到仓库数据
在这里插入图片描述
组件获取数据state.detail.goodInfo.categoryView
可以通过getters简化

//detail仓库
const getters={categoryView(){return state.goodInfo.categoryView}
}

问题:getters计算属性依赖于state中的数据,但以上写法会出现警告错误。最开始仓库还未发送请求返回回来数据,goodInfo初始值是空对象,那么getters无法取到categoryView数据,准确写法state.goodInfo.categoryView||{}
仓库数据
之后的数据同理

skuInfo(){return state.goodInfo.skuInfo||{};}

在这里插入图片描述
最后通过mapState映射数据到组件上
在这里插入图片描述

优化一下路由配置代码

router/index.js中路由配置信息很多,以及import各自组件
将routes:[……]中右边数组单独放在一个模块routes.js对外暴露

//router/routes.js
//路由配置信息
import……
export default [{path:'/home',component:Home}
]

然后看着就很清晰

//router/index.js
import routes from '/routes.js'
export default new VueRouter({//routes: routes  key-value一致省略valueroutes
})

滚轮自动置顶

当从商品页跳到商品详情页时,滚轮从原来商品页的位置到置顶位置

Vue Router里面有个滚动行为,就可以实现自定义路由切换时页面如何滚动

const router = new VueRouter({routes,//滚动行为scrollBehavior(to, from, savedPosition){//y:0表示滚动条在最顶部//y:100 表示滚动条距离顶部100像素return {y:0}}
})

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

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

相关文章

DIFY 又跟新了,来到 1.3.0 版本,看正文

欢迎来到 1.3.0 版本&#xff01;添加了各种巧妙的功能、修复了错误&#xff0c;并带来了一些新功能&#xff1a; 一、核心亮点&#xff1a; 结构化输出 1、LLM 节点新增JSON Schema编辑器&#xff0c;确保大语言模型能够返回符合预设格式的JSON数据。这一功能有助于提升数据…

git检查提交分支和package.json的version版本是否一致

这里写自定义目录标题 一、核心实现步骤‌1.安装必要依赖‌2.初始化 Husky‌3.创建校验脚本‌4.配置 lint-staged‌5.更新 Husky 钩子‌ 三、工作流程说明‌四、注意事项‌ 以下是基于 Git Hooks 的完整解决方案&#xff0c;通过 husky 和自定义脚本实现分支名与版本号一致性校…

react-navigation-draw抽屉导航

心得写在前面分享给大家&#xff1a; 我的实现方法&#xff0c;并没有完全安装官网来做&#xff0c;而是进行了简化&#xff0c;效果是一样的。没有按照官网说的修改metro.config.js文件&#xff0c;同时也没有 react-native-gesture-handler 的安装后&#xff0c;我们需要有条…

【计算机视觉】CV实战项目-高分辨率遥感图像语义分割:High-Resolution-Remote-Sensing-Semantic-Segmentation

高分辨率遥感图像语义分割技术解析与实战指南 项目背景与意义核心技术解析1. **膨胀预测&#xff08;Dilated Prediction&#xff09;**2. **后处理优化**3. **半监督学习&#xff1a;伪标签&#xff08;Pseudo Labeling&#xff09;**4. **可视化与监控** 实战指南&#xff1a…

免费送源码:Java+SSM+MySQL 基于SSM开发的校园心理咨询平台系统的设计与实现 计算机毕业设计原创定制

目 录 1 绪论 1 1.1 研究背景 1 1.2开发现状 1 1.3论文结构与章节安排 2 2 校园心理咨询平台系统系统分析 3 2.1 可行性分析 3 2.1.1 技术可行性分析 3 2.1.2 经济可行性分析 3 2.1.3 法律可行性分析 3 2.2 系统功能分析 3 2.2.1 功能性分析 4 2.2.2 非功能性分析…

学习笔记:Qlib 量化投资平台框架 — GETTING STARTED

学习笔记&#xff1a;Qlib 量化投资平台框架 — GETTING STARTED Qlib 是微软亚洲研究院开源的一个面向人工智能的量化投资平台&#xff0c;旨在实现人工智能技术在量化投资中的潜力&#xff0c;赋能研究&#xff0c;并创造价值&#xff0c;从探索想法到实施生产。Qlib 支持多种…

cmake qt 项目编译

当前MAC 编译命令 rm -rf build 删除之前build记录 mkdir build && cd build 重新生成build文件夹 cmake -DCMAKE_PREFIX_PATH"/usr/local/opt/qt" .. Cmake编译指定我的qt路径 cmake --build . 生成程序 程序生成后如此 第三方库单独下载 在CMakeLis…

Swift与iOS内存管理机制深度剖析

前言 内存管理是每一位 iOS 开发者都绕不开的话题。虽然 Swift 的 ARC&#xff08;自动引用计数&#xff09;极大简化了开发者的工作&#xff0c;但只有深入理解其底层实现&#xff0c;才能写出高效、健壮的代码&#xff0c;避免各种隐蔽的内存问题。本文将从底层原理出发&…

【机器学习】​碳化硅器件剩余使用寿命稀疏数据深度学习预测

2025 年,哈尔滨工业大学的 Le Gao 等人基于物理信息深度学习(PIDL)方法,研究了在稀疏数据条件下碳化硅(SiC)MOSFET 的剩余使用寿命(RUL)预测问题,尤其关注了其在辐射环境下的可靠性。该研究团队通过一系列实验,采用 ⁶⁰Co γ 射线作为辐射源,以 50rad/s 的剂量率照…

Spring Boot API版本控制实践指南

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 引言 在API迭代过程中&#xff0c;版本控制是保障系统兼容性的重要机制。合理的版本控制策略可以帮助开发团队平滑过渡接口变更&#xff0c;同时支持多版本客…

AI 语音芯片赋能血压计,4G Cat.1语音模组重构血压监测体验,重新定义 “智能健康管理

一、技术升级背景 全球老龄化进程加速与慢性病管理需求激增的背景下&#xff0c;传统血压计面临三大核心痛点&#xff1a; 操作门槛高&#xff1a;老年群体对复杂按键操作适应性差&#xff0c;误触率达42%&#xff08;参考WHO数据&#xff09; 数据孤岛化&#xff1a;87%的居家…

WebServiceg工具

WebServiceg工具 几年前的简单记录一下。 /*** 调用webService 接口返回字符串* param asmxUrl 提供接口的地址 https://app.***.**.cn/Ser.asmx* param waysName 设置要调用哪个方法 上面接口打开后需要调用的方法名字 * param params 请求的参数 参数* return*/…

qt中写一个简易的计算器

以下是添加了详细代码注释的版本&#xff1a; cpp #include <iostream>using namespace std;定义加法函数&#xff08;已注释掉&#xff09; //int add(int a, int b) { // return a b; //}定义减法函数&#xff08;已注释掉&#xff09; //int min(int a, int b) {…

SecureCRT配置端口转发-通过跳板机SSH到其他服务器

在项目开发中遇到这样一个问题&#xff0c;客户服务器有一台操作系统的CentOS JAVA服务器和MySQL服务器&#xff0c;本地电脑通过VPN SSH到这2台服务器进行日常维护。最近因为修改了远程Mysql服务器导致重启时连不上Mysql服务器了。但是JAVA服务器可以SSH到Mysql服务器。通过各…

vue3使其另一台服务器上的x.html,实现x.html调用中的函数,并向其传递数据。

vue3例子 <template><div><iframeload"loadIFreamSite"id"loadIframeSite":src"iframeSrc1"frameborder"0"scrolling"no"allowtransparency"true"style"width: 100%"></iframe&g…

JQ6500语音模块详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 三、程序设计 main文件 usart.h文件 usart.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 JQ6500是一种支持串口驱动的语音模块&#xff0c;提供串口的MP3芯片&#xff0c;集成了MP3、WMV的硬解码。同时软…

如何让自己的博客可以在百度、谷歌、360上搜索到(让自己写的CSDN博客可以有更多的人看到)

发现自己写的博客文章名复制&#xff0c;然后粘贴到百度进行搜索&#xff0c;发现搜索不到自己的&#xff0c;但是会显示其他人的CSDN博客。于是查找相关资料&#xff0c;整理出以下搜索引擎资源收录入口&#xff0c;把自己的文章链接输入进去&#xff0c;然后经过审核通过后&a…

1. 用户之窗

前端开发简介 1. 什么是前端&#xff1f; 前端开发&#xff08;Front-End Development&#xff09;是构建网站或应用 用户直接交互界面 的技术领域&#xff0c;涵盖&#xff1a; 视觉呈现 &#xff08;布局、色彩、动画&#xff09;交互逻辑 &#xff08;点击、滚动、表单&a…

无过拟合的记忆:分析大语言模型的训练动态

Kushal Tirumala⇤ Aram H. Markosyan⇤ Luke Zettlemoyer Armen Aghajanyan Meta AI 研究 {ktirumala,amarkos,lsz,armenag}fb.com 原文链接&#xff1a;[2210.09262] Physics-Driven Convolutional Autoencoder Approach for CFD Data Compressions 摘要 尽管超大语言模型…

黑马Redis(三)黑马点评项目

优惠卷秒杀 一、全局唯一ID 基于Redis实现全局唯一ID的策略&#xff1a; Component RequiredArgsConstructor public class RedisIdWorker {private static final Long BEGIN_TIMESTAMP1713916800L;private static final int COUNT_BITS 32;Resourceprivate final StringRed…