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.pswp.cn/bicheng/78871.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/78871.shtml
英文地址,請注明出處:http://en.pswp.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…