Uniapp寫一個簡單的商品瀑布流界面+商品詳情

最終效果:

整體內容比較簡單,參考了一篇瀑布流文章和一篇商品詳情文章隨便修改整了下,主要是給想做這方便面的新人一個簡單邏輯的展示(其實我也是第一次寫這個emmm)

一.組件下載:

uni-icon

uni-goods-nav

二.先寫一個基礎頁面:

圖片是百度隨便找的,如果訪問不了了隨便換幾張就行了

這是p1的界面代碼,

<template><view class="content"><view class="list" v-for="(item, index) in itemList" :key="item.id" @click="gopreview(item.id)"><image mode="widthFix" :src="item.img"></image><view class="title">{{ item.title }}</view><view class="con">{{ item.synopsis }}</view><view class="con_one"><view class="con_one_one">¥{{ item.price }}</view><view class="con_one_two"><s>¥{{ item.original_price }}</s></view></view></view></view>
</template><script setup>import {ref} from 'vue'const itemList=[{img: 'https://file03.16sucai.com/2017/1100/16sucai_p566c071_307.JPG',title: '松仁巧克力',content: '好像是壞越最喜歡的巧克力?聽說產生在那個山的那邊海的那邊的都是省速度市,甜美的青山水和令人陶醉的可可',price:'2',original_price:'6',id:'1',goodinfoimg:'https://img2.baidu.com/it/u=4217825575,3521188604&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=708'},{img: 'https://img1.baidu.com/it/u=4169556851,3455102274&fm=253&fmt=auto&app=138&f=JPEG?w=667&h=500',title: '德芙巧克力',content: '傳說中最物美價廉的巧克力,聽說產生在那個山的那邊海的那邊的都是省速度市,甜美的青山水和令人陶醉的可可',price:'1',original_price:'7',id:'2',goodinfoimg:'https://img2.baidu.com/it/u=4217825575,3521188604&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=708'},{img: 'https://img0.baidu.com/it/u=1135608079,1041890161&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500',title: '白巧克力',content: '這巧克力真白~聽說產生在那個山的那邊海的那邊的都是省速度市,甜美的青山水和令人陶醉的可可',price:'3',original_price:'8',id:'3',goodinfoimg:'https://img2.baidu.com/it/u=4217825575,3521188604&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=708'},{img: 'https://img1.baidu.com/it/u=2795270876,536929854&fm=253&fmt=auto&app=138&f=JPEG?w=603&h=385',title: '快樂巧克力',content: '吃了會很開心。嘻嘻嘻,聽說產生在那個山的那邊海的那邊的都是省速度市,甜美的青山水和令人陶醉的可可',price:'2',original_price:'9',id:'4',goodinfoimg:'https://img2.baidu.com/it/u=4217825575,3521188604&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=708'},{img: 'https://img1.baidu.com/it/u=2795270876,536929854&fm=253&fmt=auto&app=138&f=JPEG?w=603&h=385',title: '悲傷巧克力',content: '吃了會特別想哭,嗚嗚嗚嗚',price:'4',original_price:'5',id:'5',goodinfoimg:'https://img2.baidu.com/it/u=4217825575,3521188604&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=708'},{img: 'https://img0.baidu.com/it/u=1135608079,1041890161&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500',title: '德芙巧克力',content: '傳說中最物美價廉的巧克力,聽說產生在那個山的那邊海的那邊的都是省速度市,甜美的青山水和令人陶醉的可可',price:'1',original_price:'7',id:'6',goodinfoimg:'https://img2.baidu.com/it/u=4217825575,3521188604&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=708'},{img: 'https://img0.baidu.com/it/u=1135608079,1041890161&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500',title: '白巧克力',content: '這巧克力真白~聽說產生在那個山的那邊海的那邊的都是省速度市,甜美的青山水和令人陶醉的可可',price:'3',original_price:'8',id:'7',goodinfoimg:'https://img2.baidu.com/it/u=4217825575,3521188604&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=708'},{img: 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.ivsky.com%2Fimg%2Ftupian%2Fpic%2F201611%2F14%2Fxinxing_qiaokeli-022.jpg%3Fdownload&refer=http%3A%2F%2Fimg.ivsky.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1719467515&t=619593f0dac758fed2cc7502bc4748b5',title: '快樂巧克力',content: '吃了會很開心。嘻嘻嘻,聽說產生在那個山的那邊海的那邊的都是省速度市,甜美的青山水和令人陶醉的可可',price:'2',original_price:'9',id:'8',goodinfoimg:'https://img2.baidu.com/it/u=4217825575,3521188604&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=708'},{img: 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.ivsky.com%2Fimg%2Ftupian%2Fpic%2F201611%2F14%2Fxinxing_qiaokeli-022.jpg%3Fdownload&refer=http%3A%2F%2Fimg.ivsky.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1719467515&t=619593f0dac758fed2cc7502bc4748b5',title: '快樂巧克力',content: '吃了會很開心。嘻嘻嘻,聽說產生在那個山的那邊海的那邊的都是省速度市,甜美的青山水和令人陶醉的可可',price:'2',original_price:'9',id:'9',goodinfoimg:'https://img2.baidu.com/it/u=4217825575,3521188604&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=708'}]const gopreview=(id)=>{const iteminfo=itemList.filter(item=>item.id==id)uni.setStorageSync('storagItemList',iteminfo)uni.navigateTo({url:"/pages/item/item?id="+id})}
</script>
<style scoped>.list {break-inside: avoid;width: 330rpx;border: 1px solid #f4f4f4;margin-top: 10px;border-radius: 20rpx;}.con {color: #8b8d8c;overflow: hidden;/*超出部分隱藏*/white-space: nowrap;/*禁止換行*/text-overflow: ellipsis;margin-left: 15rpx;margin-right: 15rpx;font-size: 26rpx;}.title {margin-left: 15rpx;margin-right: 15rpx;font-size: 26rpx;color: #8b8d8c;overflow: hidden;/*超出部分隱藏*/white-space: nowrap;/*禁止換行*/text-overflow: ellipsis;}/* 內容區 */.content {padding: 30rpx;box-sizing: border-box;column-count: 2;}image {width: 100%;border-radius: 6rpx;}
</style>

實現基本的布局和產品展示,數據源可以用后端接口的方式也行,這個影響不大,這邊主要是方便修改和快速展示。這邊其實也就一個跨頁面傳輸和跳轉,我這邊是用id來判斷選中的對象是哪一個,再用filter篩選對應的對象保存到storage實現跨頁面傳輸

三.pages/item/item

<template><view v-if="goods_info.title"><swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000"><swiper-item><image :src="goods_info.img" mode=""></image></swiper-item><swiper-item><image :src="goods_info.img" mode=""></image></swiper-item><swiper-item><image :src="goods_info.img" mode=""></image></swiper-item></swiper><!-- 輪播圖區域 -->
<!-- 	  <swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" :circular="true"><swiper-item v-for="(item, i) in goods_info.pics" :key="i"><image :src="item.pics_big" @click="preview(i)"></image></swiper-item></swiper> --><!-- 商品信息區域 --><view class="goods-info-box"><!-- 商品價格 --><view class="price">¥{{goods_info.price}}</view><!-- 信息主體區域 --><view class="goods-info-body"><!-- 商品名稱 --><view class="goods-name">{{goods_info.title}}</view><!-- 收藏 --><view class="favi"><uni-icons type="star" size="18" color="gray"></uni-icons><text>收藏</text></view></view><!-- 運費 --><view class="yf">快遞:免運費</view></view><!-- 商品詳情信息 --><rich-text :nodes="goods_info.content"></rich-text><view class="goodinfoimg"><image :src="goods_info.goodinfoimg" mode="aspectFill"></image><image :src="goods_info.goodinfoimg" mode="aspectFill"></image></view><!-- 商品導航組件 --><view class="goods_nav"><!-- fill 控制右側按鈕的樣式 --><!-- options 左側按鈕的配置項, 由data定義 --><!-- buttonGroup 右側按鈕的配置項, 由data定義 --><!-- click 左側按鈕的點擊事件處理函數 --><!-- buttonClick 右側按鈕的點擊事件處理函數 --><uni-goods-nav :fill="true" :options="options" :buttonGroup="buttonGroup" @click="onClick" @buttonClick="buttonClick" /></view></view>
</template>
<script setup>import {ref} from 'vue'const goods_info=uni.getStorageSync('storagItemList')[0]||[]console.log(goods_info)const itemchek=	[{img: 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.ivsky.com%2Fimg%2Ftupian%2Fpic%2F201611%2F14%2Fxinxing_qiaokeli-022.jpg%3Fdownload&refer=http%3A%2F%2Fimg.ivsky.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1719467515&t=619593f0dac758fed2cc7502bc4748b5',title: '快樂巧克力',content: '吃了會很開心。嘻嘻嘻',price:'2',original_price:'9',id:'9'}]const options=ref( [{icon: 'shop',text: '店鋪',infoBackgroundColor: '#007aff',infoColor: "red"}, {icon: 'cart',text: '購物車',info: 0}])const buttonGroup=ref([{text: '加入購物車',backgroundColor: '#ff0000',color: '#fff'},{text: '立即購買',backgroundColor: '#ffa200',color: '#fff'}])
</script><style lang="scss">
swiper {height: 750rpx;image {width: 100%;height: 100%;}
}// 商品信息區域的樣式
.goods-info-box {padding: 10px;padding-right: 0;.price {color: #c00000;font-size: 18px;margin: 10px 0;}.goods-info-body {display: flex;justify-content: space-between;.goods-name {font-size: 13px;padding-right: 10px;}// 收藏區域.favi {width: 120px;font-size: 12px;display: flex;flex-direction: column;justify-content: center;align-items: center;border-left: 1px solid #efefef;color: gray;}}// 運費.yf {margin: 10px 0;font-size: 12px;color: gray;}
}.goods-detail-container {// 給頁面外層的容器,添加 50px 的內padding,// 防止頁面內容被底部的商品導航組件遮蓋padding-bottom: 50px;
}
.goodinfoimg{margin-top: 20px;width: 100vw;flex-wrap: wrap;display: flex;justify-content: center;
}
.goods_nav {// 為商品導航組件添加固定定位position: fixed;bottom: 0;left: 0;width: 100%;
}
</style>

后邊的功能以后有時間再詳細寫寫~

代碼附github

git源碼:https://github.com/stubidyue/goodsitem

參考文章:uniapp實現瀑布流_uniapp 小紅書瀑布流-CSDN博客

參考文章:【愚公系列】2022年11月 uniapp專題-優購電商-商品詳情頁面_uniapp商品詳情頁-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/21113.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21113.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/21113.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是ACP?

前言 ACP指的是應用程序控制平面&#xff0c;是微服務架構中的一個關鍵組成部分。它負責管理微服務架構中的各個微服務&#xff0c;包括服務發現和注冊、負載均衡、服務路由、熔斷和降級、配置管理等方面的功能。 A&#xff1a;可用性 所有請求都有響應。C&#xff1a;強一致…

[DDR5 Jedec 3-4] 模式寄存器 Mode Register MRR/MRW

依公知及經驗整理,原創保護,禁止轉載。 專欄 《深入理解DDR》 1. 概念 模式寄存器用于定義各種操作模式。在初始化過程中,可以通過重新執行MRS命令來更改模式寄存器的內容。即使用戶只想修改模式寄存器變量的一個子集,在發出MRS命令時也必須編程所有變量。 只有當所有ban…

C語言案例-輸入任意三個數,按從大到小的順序輸出.

目錄 問題待續、更新中 問題 輸入任意三個數,按從大到小的順序輸出. 最大值 3數&#xff0c;重新排序輸出 輸出數據if來&#xff0c;ab ac bc比&#xff0c;比中里面交換值&#xff0c;輸出abc時為降序 代碼如下: #include <stdio.h> void main() {int a,b,c,t;printf(&…

現實殘酷!存款百萬只是少數人的游戲,普通家庭能存多少?

近期&#xff0c;網絡上掀起了一股關于普通家庭終身存款上限的熱烈討論。一位網友通過簡單的算術方式提出了一個假設&#xff1a;如果一對夫妻每年收入15萬&#xff0c;并成功將6萬存入銀行&#xff0c;那么從25歲步入社會至60歲退休&#xff0c;他們理論上能積累到210萬的存款…

從0開發一個Chrome插件:Manifest 文件詳解

前言 這是《從0開發一個Chrome插件》系列的第六篇文章,本系列教你如何從0去開發一個Chrome插件,每篇文章都會好好打磨,寫清楚我在開發過程遇到的問題,還有開發經驗和技巧。 專欄: 從0開發一個Chrome插件:什么是Chrome插件?從0開發一個Chrome插件:開發Chrome插件的必要…

C++知識點總結(36):二分進階練習

二分答案練習 一、憤怒的羊駝題目描述輸入描述輸出描述樣例1提示參考答案 二、偷吃西瓜題目描述輸入描述輸出描述樣例1提示參考答案 三、丟沙包題目描述輸入描述輸出描述樣例1提示參考答案 四、木材加工題目描述輸入描述輸出描述樣例1提示參考答案 五、路標設置題目描述輸入描述…

Go語言之GORM框架(四)——預加載,關聯標簽與多態關聯,自定義數據類型與事務(完結篇)

前言 本來是想著寫多表關系的&#xff0c;不過寫了一半發現重復的部分太多了&#xff0c;想了想與其做一些重復性工作&#xff0c;不如把一些當時覺得抽象的東西記錄一下&#xff0c;就當用一篇雜記完成專欄的最后一篇文章吧。 預加載 簡單示例 預加載主要用于在多表關系中…

谷歌瀏覽器的平替,內置開掛神器,我已愛不釋手!

油猴瀏覽器正式版是一款基于谷歌Chromium源碼開發的瀏覽器&#xff0c;它集成了集成了強大的油猴擴展&#xff08;Tampermonkey&#xff09;&#xff0c;使得用戶可以輕松安裝各種腳本&#xff0c;從而增強網頁瀏覽體驗。提供了一個更加個性化和高效的瀏覽體驗。 油猴擴展&…

git使用流程

1.下載git 搜索下載 2.注冊github賬號&#xff08;打開爬墻工具&#xff09; 創建一個倉庫 3.配置郵箱和密碼 4.所以找一個文件夾 鼠標右鍵 選擇 open Git Bash here&#xff08;當前文件夾下打開命令行&#xff09; 輸入命令 配置用戶名和郵箱 5.將建的倉庫克隆下來 …

【JS實戰案例匯總——不定時更新版】

一&#xff1a;轉換時間案例 1 需求&#xff1a; 用戶輸入秒數&#xff0c;系統會自動將秒數轉變為小時、分鐘、秒&#xff0c;并且不滿10的要在前面補零 2 算法&#xff1a; 小時:hour parseInt(總秒數/60/60%24) 分鐘:minute parseInt(總秒數/60%60) 秒數:second pa…

測試基礎09:缺陷(bug)生命周期、定位方式和管理規范

課程大綱 1、缺陷&#xff08;bug&#xff09;生命周期 2、缺陷&#xff08;bug&#xff09;提交規范 2.1 宗旨 簡潔、清晰、可視化&#xff0c;減少溝通成本。 2.2 bug格式和內容 ① 標題&#xff1a;一級功能-二級功能-三級功能_&#xff08;一句話描述bug&#xff1a;&…

---初始Linux---

一、認識計算機 計算機 硬件 軟件 硬件&#xff1a;就是計算機系統中由電子、機械和光電元件等組成的各種物理裝置的總稱&#xff08;CPU\GPU\...&#xff09; 軟件&#xff1a;是用戶和計算機硬件之間及進行交流的工具 然而一個簡單的計算機或者說基本的計算機就是有兩大…

浙江大學數據結構MOOC-課后習題-第十講-排序5 PAT Judge【未完成】

題目匯總 浙江大學數據結構MOOC-課后習題-拼題A-代碼分享-2024 題目描述 這段文字是關于如何生成PAT&#xff08;一種編程能力測試&#xff09;的排行榜的說明。下面是這段文字的中文翻譯&#xff1a; 輸入說明&#xff1a; 每個輸入文件包含一個測試案例。對于每個案例&…

C++ A (1020) : 冪運算

文章目錄 一、題目描述二、參考代碼 一、題目描述 二、參考代碼 #include<bits/stdc.h> using namespace std; typedef long long ll;void qq(ll a, ll b, ll m) {if (a 0) cout << 0 << endl;;ll out 1;a % m;while (b > 0){if (b & 1)//奇數的最…

[AIGC] Vue2與Vue3的主要區別和示例代碼

Vue3是Vue框架的最新版本&#xff0c;它在性能、開發體驗和代碼體積等方面都有很大的改進。接下來我們將通過比較Vue2和Vue3的主要區別&#xff0c;進一步理解這些改變是如何影響我們的。 文章目錄 一、性能提升二、Composition API三、更好的類型支持四、生命周期鉤子函數變化…

lux和ffmpeg進行下載各大主流自媒體平臺視頻

1、lux下載&#xff0c;鏈接&#xff1a;https://pan.baidu.com/s/1WjGbouL3KFTU6LeqZmACpA?pwdagpp 提取碼&#xff1a;agpp 2、ffmpeg下載&#xff0c;跟lux放在同一個目錄&#xff1b; 3、為lux、ffmpeg設置環境變量&#xff1b; 4、WINR&#xff0c;打開運行&#xff0…

帶你自學大語言模型系列 —— 前言

今天開始&#xff0c;我計劃開啟一個系列 《帶你自學大語言模型》&#xff0c;內容也已經準備了一段時間了。 該系列的落腳點是“自學”和“大語言模型”&#xff0c;二者不分伯仲&#xff0c;這也是本系列和其他技術文章不一樣的地方。 至于原因&#xff0c;我不想只做大語言…

【C++】STL中vector常見功能的模擬實現

前言&#xff1a;在上一篇中我們講到了Vector的一些常見功能的使用方式&#xff0c;今天為了進一步的去學習Vector和能夠更深度的去理解Vector的一些底層的原理。 &#x1f496; 博主CSDN主頁:衛衛衛的個人主頁 &#x1f49e; &#x1f449; 專欄分類:高質量&#xff23;學習 &…

鴻蒙ArkTS聲明式開發:跨平臺支持列表【禁用控制】 通用屬性

禁用控制 組件是否可交互&#xff0c;可交互狀態下響應[點擊事件]、[觸摸事件]、[拖拽事件]、[按鍵事件]、[焦點事件]和[鼠標事件]。 說明&#xff1a; 開發前請熟悉鴻蒙開發指導文檔&#xff1a; gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md點擊或者復制轉到…

【一刷《劍指Offer》】面試題 30:最小的 k 個數

牛客對應題目鏈接&#xff1a;最小的K個數_牛客題霸_牛客網 (nowcoder.com) 力扣對應題目鏈接&#xff1a;LCR 159. 庫存管理 III - 力扣&#xff08;LeetCode&#xff09; 核心考點 &#xff1a; topK 問題。 一、《劍指Offer》內容 二、分析題目 1、排序&#xff08;O(Nlo…