uniapp-商城-33-shop 布局搜索頁面以及u-search

shop頁面上有一個搜索,可以進行商品搜索,這里我們先做一個頁面布局,后面再來進行數據i聯動。

1、shop頁面的搜索

2、搜索的頁面代碼

<navigator class="searchView" url="/pagesub/pageshop/search/search">
??????????????????????? <u-icon name="search" size="22" color="#FABE50"></u-icon>搜索
??????????????????????? <!-- 通過樣式壓在右上角 -->
?</navigator>

3、創建搜索頁面 search

3.1 創建 pagesub---pageshop---search--search.vue

3.2 search 代碼

<template><view class="searchLayout"><!-- 搜索頁面 --><u-search placeholder="請輸入搜索內容" v-model="keyword"  clearabledshowActionactionText="搜索" animation@search="onSearch"   @custom="onSearch"></u-search><!-- 雙向綁定  就是讓頁面和數據同步  這里是 v-model  或者 變量加冒號  --><!-- uview 中使用的 onsearch  是事件  @search:回車觸發  @custom:點擊搜索觸發--><!-- https://uviewui.com/components/search.html --><view class="historyList"><view class="item" v-for="(item,index) in historyList" :key="item"><view class="text">{{item}}</view><view class="close" @click="onClose(index)"><u-icon name="close" size="16" color="#999"></u-icon></view></view></view></view>
</template><script>export default {data() {return {keyword:"",historyList:[]};},onLoad(){let historyList = uni.getStorageSync("historyList") || []   //進入搜索頁面就需要   讀取緩存this.historyList = historyList    //把讀取到的結果 賦值給歷史搜索},methods:{//搜索事件onSearch(){				this.historyList.unshift(this.keyword)				this.historyList = [...new Set(this.historyList)];  //去重,去點重復的值  這個方法是數組去重uni.setStorageSync("historyList",this.historyList)   //把搜索過的對象  存儲在緩存中},//刪除歷史onClose(index){console.log(index);this.historyList.splice(index,1);   //刪除 提供的index 對應的搜索對象uni.setStorageSync("historyList",this.historyList)   //把刪除過 的對象,存儲在緩存中}}}
</script><style lang="scss">
.searchLayout{padding:30rpx;.historyList{margin-top:30rpx;.item{@include flex-box();font-size: 32rpx;padding:30rpx 0;color:#333;border-bottom: 1px solid $border-color-light;}}
}</style>

4、搜索代碼解析 search.vue

包含兩部分? 一個是search 一個是 搜索歷史的處理

4.1 搜索頁面樣式

4.2 u-serach的使用

Search 搜索 | uView 2.0 - 全面兼容 nvue 的 uni-app 生態框架 - uni-app UI 框架

        <!-- 搜索頁面 --><u-search placeholder="請輸入搜索內容" v-model="keyword"  clearabledshowActionactionText="搜索" animation@search="onSearch"   @custom="onSearch"></u-search><!-- 雙向綁定  就是讓頁面和數據同步  這里是 v-model  或者 變量加冒號  --><!-- uview 中使用的 onsearch  是事件  @search:回車觸發  @custom:點擊搜索觸發--><!-- https://uviewui.com/components/search.html -->

相應字段 意思 在上面的官網上有介紹。

4.3 歷史搜索記錄處理

        <view class="historyList"><view class="item" v-for="(item,index) in historyList" :key="item"><view class="text">{{item}}</view><view class="close" @click="onClose(index)"><u-icon name="close" size="16" color="#999"></u-icon></view></view></view>

將搜索記錄存儲到 historyList 列表中

將記錄展示在下方,并提供刪除歷史的操作鍵 close

這里主要使用到了 存儲歷史記錄到緩存中。

用到了 數組列表 的添加? unshift?? 刪除的splice (也可以用filter)

這里將會用到其他方法:

<script>export default {data() {return {keyword:"",historyList:[]};},onLoad(){let historyList = uni.getStorageSync("historyList") || []   //進入搜索頁面就需要   讀取緩存this.historyList = historyList    //把讀取到的結果 賦值給歷史搜索},methods:{//搜索事件onSearch(){				this.historyList.unshift(this.keyword)				this.historyList = [...new Set(this.historyList)];  //去重,去點重復的值  這個方法是數組去重uni.setStorageSync("historyList",this.historyList)   //把搜索過的對象  存儲在緩存中},//刪除歷史onClose(index){console.log(index);this.historyList.splice(index,1);   //刪除 提供的index 對應的搜索對象uni.setStorageSync("historyList",this.historyList)   //把刪除過 的對象,存儲在緩存中}}}
</script>

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

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

相關文章

SAP 采購訂單如何防止開票數量 大于 收貨數量呢

配置點如下&#xff1a; 事務碼&#xff1a;OMRM&#xff0c;配置如下 當過賬開票的數量 大于收貨數量的時候會提示如下&#xff1a;

Kotlin 的 suspend 關鍵字

更多相關知識 Kotlin 的 suspend 關鍵字是 Kotlin 協程的核心組成部分&#xff0c;它用于標記一個函數可以被掛起&#xff08;暫停執行&#xff09;并在稍后恢復執行&#xff0c;而不會阻塞線程。 理解 suspend 的作用需要從以下幾個方面入手&#xff1a; 1. 允許非阻塞的異步…

UDS診斷協議iso-14229 15765

Diagnostic request 形式多種: 1.SID+DID 2.SID+Sub-Func+DID 3.SID+Sub-Func SID占1個Byte,Sub-func占一個Byte,DID通常兩個Byte eg.10 01 (SID+Sub-Func) 10 03 05 02 (SID+Sub-Func+DID) 22 02 00 (SID+DID) 肯定響應抑制位 抑制正響應信息除非是收到NRC 0x78的情況下 不…

記錄一次使用面向對象的C語言封裝步進電機驅動

簡介 (2025/4/21) 本庫對目前僅針對TB6600驅動下的42步進電機的基礎功能進行了一定的封裝, 也是我初次嘗試以面向對象的思想去編寫嵌入式代碼, 和直流電機的驅動步驟相似在調用stepmotor_attach()函數和stepmotor_init()函數之后僅通過結構體數組stepm然后指定枚舉變量中的id即…

[創業之路-376]:企業法務 - 創業,不同的企業形態,個人承擔的風險、收益、稅費、成本不同

在企業法務領域&#xff0c;創業時選擇不同的企業形態&#xff0c;個人在風險承擔、收益分配、稅費負擔及運營成本方面存在顯著差異。以下從個人獨資企業、合伙企業、有限責任公司、股份有限公司四種常見形態展開分析&#xff1a; 一、個人承擔的風險 個人獨資企業 風險類型&…

GNOME桌面隱藏回收站和分區

dconf-editor 搜索 trash&#xff0c;關閉 show-trash 搜索 volumes&#xff0c;關閉 show-volumns

準確--Tomcat更換證書

具體意思是&#xff1a; Starting Coyote HTTP/1.1 on http-8080: HTTP 連接器&#xff08;端口 8080&#xff09;啟動成功了。嚴重: Failed to load keystore type PKCS12 with path conf/jlksearch.fzsmk.cn.pfx due to failed to decrypt safe contents entry: javax.crypt…

禁止ubuntu自動更新

由于ubuntu server和desktop版本都默認 啟動了&#xff0c;自動更新內核的操作。這對于生 產環境來說是不友好的。容易導致億賽通 無法啟動 默認開啟了內核自動更新所以我們關閉自 動內核更新。 1.禁止更新執行 sudo apt-mark hold linux-image-generic linux-headers-generic…

vue3 + element-plus中el-drawer抽屜滾動條回到頂部

el-drawer抽屜滾動條回到頂部 <script setup lang"ts" name"PerformanceLogQuery"> import { ref, nextTick } from "vue"; ...... // 詳情 import { performanceLogQueryByIdService } from "/api/performanceLog"; const onD…

【重走C++學習之路】16、AVL樹

目錄 一、概念 二、AVL樹的模擬實現 2.1 AVL樹節點定義 2.2 AVL樹的基本結構 2.3 AVL樹的插入 1. 插入步驟 2. 調節平衡因子 3. 旋轉處理 4. 開始插入 2.4 AVL樹的查找 2.5 AVL樹的刪除 1. 刪除步驟 2. 調節平衡因子 3. 旋轉處理 4. 開始刪除 結語 一、概念 …

char32_t、char16_t、wchar_t 用于 c++ 語言里存儲 unicode 編碼的字符,給出它們的具體定義

&#xff08;1&#xff09; #include <iostream> #include <string>int main() { std::u16string s u"C11 引入 char16_t"; // 定義 UTF-16 字符串for (char16_t c : s) // 遍歷輸出每個 char16_t 的值std::cout << std::hex << (…

redis數據類型-基數統計HyperLogLog

redis數據類型-基數統計HyperLogLog 文檔 redis單機安裝redis常用的五種數據類型redis數據類型-位圖bitmap 說明 官網操作命令指南頁面&#xff1a;https://redis.io/docs/latest/commands/?nameget&groupstringHyperLogLog介紹頁面&#xff1a;https://redis.io/docs…

邏輯思維:從混沌到秩序的理性推演在軟件開發中的應用

引言 在軟件開發的過程中&#xff0c;邏輯思維就像是開發者的“GPS導航”&#xff0c;幫助我們從混沌的需求中找到清晰的解決方案。想象一下&#xff0c;如果沒有邏輯思維&#xff0c;我們可能會在需求的海洋中迷失方向&#xff0c;最終寫出一堆“看似聰明但毫無意義”的代碼。…

Spring AI Alibaba Graph基于 ReAct Agent 的天氣預報查詢系統

1、在本示例中&#xff0c;我們僅為 Agent 綁定了一個天氣查詢服務&#xff0c;接收到用戶的天氣查詢服務后&#xff0c;流程會在 AgentNode 和 ToolNode 之間循環執行&#xff0c;直到完成用戶指令。示例中判斷指令完成的條件&#xff08;即 ReAct 結束條件&#xff09;也很簡…

HCIP(綜合實驗2)

1.實驗拓補圖 2.實驗要求 1.根據提供材料劃分VLAN以及IP地址&#xff0c;PC1/PC2屬于生產一部員工劃分VLAN10,PC3屬于生產二部劃分VLAN20 2.HJ-1HJ-2交換機需要配置鏈路聚合以保證業務數據訪問的高帶寬需求 3.VLAN的放通遵循最小VLAN透傳原則 4.配置MSTP生成樹解決二層環路問題…

使用 rebase 輕松管理主干分支

前言 最近遇到一個技術團隊的 dev 環境分支錯亂&#xff0c;因為是多人合作大家各自提交信息&#xff0c;導致出現很多交叉合并記錄&#xff0c;讓對應 log 看起來非常混亂&#xff0c;難以閱讀。 舉例說明 假設我們有一個項目&#xff0c;最初develop分支有 3 個提交記錄&a…

使用openssl為localhost創建自簽名

文章目錄 自簽名生成命令安裝安裝證書瀏覽器證書管理器 自簽名 生成命令 使用openssl生成私鑰和證書。 openssl req -x509 -newkey rsa:4096 -nodes -days 365 -subj "/CNlocalhost" -addext "subjectAltNameDNS:localhost" -keyout cert.key -out cer…

AI編程助手Cline之快速介紹

Cline 是一款深度集成在 Visual Studio Code&#xff08;VSCode&#xff09; 中的開源 AI 編程助手插件&#xff0c;旨在通過結合大語言模型&#xff08;如 Claude 3.5 Sonnet、DeepSeek V3、Google Gemini 等&#xff09;和工具鏈&#xff0c;為開發者提供自動化任務執行、智能…

1.微服務拆分與通信模式

目錄 一、微服務拆分原則與策略 業務驅動拆分方法論 ? DDD&#xff08;領域驅動設計&#xff09;中的限界上下文劃分 ? 業務功能正交性評估&#xff08;高內聚、低耦合&#xff09; 技術架構拆分策略 ? 數據層拆分&#xff08;垂直分庫 vs 水平分表&#xff09; ? 服務粒…

Element Plus表格組件深度解析:構建高性能企業級數據視圖

一、架構設計與核心能力 Element Plus的表格組件&#xff08;el-table&#xff09;基于Vue 3的響應式系統構建&#xff0c;通過聲明式配置實現復雜數據渲染。其核心設計理念體現在三個層級&#xff1a; 數據驅動&#xff1a;通過data屬性綁定數據源&#xff0c;支持動態更新與…