微信小程序(原生)搜索功能實現

?一、效果圖

?二、代碼

wxml

<van-searchvalue="{{ keyword }}"shape="round"background="#000"placeholder="請輸入關鍵詞"use-action-slotbind:change="onChange"bind:search="onSearch"bind:clear="onClear"
><view slot="action" bind:tap="onSearch" style="padding: 0 26rpx; color: #fff;">搜索</view>
</van-search><view class="history" wx:if="{{!productList.length &&  historyList.length}}"><view class="title"><view class="text">搜索歷史</view><view class="remove" bind:tap="handleHistoryRemove"><van-icon name="delete-o" size="18" /><text class="font">清空歷史</text></view></view><view class="content"><view class="item" wx:for="{{historyList}}" wx:key="item" data-value="{{item}}"  bind:tap="hisItemClick">{{item}}</view></view>
</view><view class="total" wx:if="{{total}}">一共搜索出<text class="totalNum">{{total}}</text>產品
</view><view class="product_main"><view class="main_item" wx:for="{{productList}}" wx:key="_id"><!-- 商品的組件 -->11</view>
</view><van-emptywx:if="{{noData}}"image="https://img01.yzcdn.cn/vant/empty-image-search.png"description="沒有搜索結果"
/>

scss

.history{padding: 30rpx;.title{display: flex;justify-content: space-between;align-items: center;font-size: 30rpx;color: #666;.text{font-size: 32rpx;}.remove{color: #999;display: flex;align-items: center;.font{padding-left: 5rpx;}}}.content{padding: 20rpx 0;display: flex;flex-wrap: wrap;.item{color: #333;background-color: aqua;border-radius: 20rpx;font-size: 25rpx;padding: 8rpx 25rpx;margin: 0 20rpx 20rpx 0;}}
}
.total{padding: 30rpx;font-size: 28rpx;color: #666;.totalNum{color: red;}
}
.product_main{padding: 0 30rpx;display: flex;flex-wrap: wrap;justify-content: space-between;.main_item{margin-top: 20rpx;width: 320rpx;height: 200rpx;background-color: pink;}
}

js

import {queryProduct
} from '../../api/apis'
Page({data: {historyList: [], //搜索的歷史記錄productList: [], //搜到的產品total: 0,keyword: '',noData:false},onLoad(options) {let hisKey = wx.getStorageSync("hisKey") || null;if (hisKey) {this.setData({historyList: hisKey})}},hisItemClick(item) {this.setData({keyword: item.currentTarget.dataset.value})this.getSearchData()},onClear() {this.setData({keyword: '',productList: [],total: 0,noData:false})},onChange(e) {this.setData({keyword: e.detail})},// 確認搜索onSearch() {if (this.data.keyword.trim().length == '') {wx.showToast({title: '請輸入搜索內容',icon: 'none',})return}console.log('123');let hisArr = this.data.historyList || []hisArr.unshift(this.data.keyword)hisArr = [...new Set(hisArr)]hisArr = hisArr.slice(0, 5)this.setData({historyList: hisArr})wx.setStorageSync("hisKey", hisArr)this.getSearchData()},// 獲取搜索到的數據getSearchData() {queryProduct({keyword: this.data.keyword,limit: 10}).then(res => {console.log(res);let noData = falseif(res.data.length == 0) {noData=true}this.setData({total: res.total,productList: res.data,noData})})},handleHistoryRemove() {wx.showModal({title: '提示',content: '是否確定清空歷史?',success: (res)=> {if (res.confirm) {this.setData({historyList: [],productList: [], total: 0,keyword: '',noData:false})wx.removeStorageSync('hisKey')} else if (res.cancel) {console.log('用戶點擊取消')}}})},
})

json文件是引入的vant

{"usingComponents": {"van-search": "@vant/weapp/search/index","van-empty": "@vant/weapp/empty/index"}
}

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

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

相關文章

實踐-CNN卷積層

實踐-CNN卷積層 1 卷積層構造2 整體流程3 BatchNormalization效果4 參數對比5 測試效果 1 卷積層構造 2 整體流程 根據網絡結構來寫就可以了。 池化 拉平 訓練一個網絡需要2-3天的時間。用經典網絡來&#xff0c;一些細節沒有必要去扣。 損失函數&#xff1a; fit模型&…

運維監控學習筆記1

1、監控對象&#xff1a; 1、監控對象的理解&#xff1b;CPU是怎么工作的&#xff1b; 2、監控對象的指標&#xff1a;CPU使用率&#xff1b;上下文切換&#xff1b; 3、確定性能基準線&#xff1a;CPU負載多少才算高&#xff1b; 2、監控范圍&#xff1a; 1、硬件監控&#x…

線性掃描寄存器分配算法介紹

線性掃描寄存器分配 文章目錄 線性掃描寄存器分配1. 算法介紹2. 相關概念3. 算法的實現3.1 偽代碼3.2 圖示 參考文獻 論文地址&#xff1a; Linear Scan Register Allocation ? 我們描述了一種稱為線性掃描的快速全局寄存器分配的新算法。該算法不基于圖形著色&#xff0c;而…

echarts3d柱狀圖

//畫立方體三個面 const CubeLeft echarts.graphic.extendShape({shape: {x: 0,y: 0,width: 9.5, //柱狀圖寬zWidth: 4, //陰影折角寬zHeight: 3, //陰影折角高},buildPath: function (ctx, shape) {const api shape.api;const xAxisPoint api.coord([shape.xValue, 0]);con…

陪診小程序開發|陪診陪護小程序讓看病不再難

陪診小程序通過與醫療機構的合作&#xff0c;整合了醫療資源&#xff0c;讓用戶能夠更加方便地獲得專業醫療服務。用戶不再需要面對繁瑣的掛號排隊&#xff0c;只需通過小程序預約服務&#xff0c;便能夠享受到合適的醫療資源。這使得用戶的就醫過程變得簡單高效&#xff0c;并…

Redis使用規范及優化

緩存設計 緩存方案 普通緩存 查詢數據時&#xff0c;先查找緩存&#xff0c;如果有延長緩存時間并返回。如果沒有&#xff0c;再去查找數據庫&#xff0c;將查詢的數據再寫到緩存&#xff0c;同時設置過期時間。如果是靜態熱點數據&#xff0c;可以不設置緩存失效時間。 冷…

IntelliJ最佳插件

基于 IntelliJ 平臺的 JetBrains IDE 可能是當今最常見的 IDE 之一。它們的受歡迎程度在 JVM 語言社區中尤其明顯&#xff0c;IntelliJ IDEA 仍然是大多數開發人員的首選 IDE。所有這一切都是在一些新競爭對手的出現和老競爭對手克服以前的缺點并重新加入競爭者的情況下實現的。…

【EI/SCOPUS檢索】第三屆計算機視覺、應用與算法國際學術會議(CVAA 2023)

第三屆計算機視覺、應用與算法國際學術會議&#xff08;CVAA 2023) The 3rd International Conference on Computer Vision, Application and Algorithm 2023年第三屆計算機視覺、應用與算法國際學術會議&#xff08;CVAA 2023&#xff09;主要圍繞計算機視覺、計算機應用、計…

PPT顏色又丑又亂怎么辦?

一、設計一套PPT時&#xff0c;可以從這5個方面進行設計 二、PPT顏色 &#xff08;一&#xff09;、PPT常用顏色分類 一個ppt需要主色、輔助色、字體色、背景色即可。 &#xff08;二&#xff09;、搭建PPT色彩系統 設計ppt時&#xff0c;根據如下幾個步驟&#xff0c;依次選…

Arduino驅動紅外二氧化碳傳感器(氣體傳感器篇)

目錄 1、傳感器特性 2、驅動程序 紅外激光傳感器是將成熟的紅外吸收氣體檢測技術與精密光路設計、精良電路設計緊密結合而制作出的高性能傳感器,具有高靈敏度、高分辨率、低功耗,響應快、抗水汽干擾、不中毒、穩定性高、使用壽命長等特點。本篇博文使用Arduino驅動紅外二氧…

Android學習之路(2) 設置視圖

一、設置視圖寬高 ? 在Android開發中&#xff0c;可以使用LayoutParams類來設置視圖&#xff08;View&#xff09;的寬度和高度。LayoutParams是一個用于布局的參數類&#xff0c;用于指定視圖在父容器中的位置和大小。 ? 下面是設置視圖寬度和高度的示例代碼&#xff1a; …

Win10基于 Anaconda 配置 Deeplabcut 環境

最近需要做動物行為學分析的相關研究&#xff0c;同時由于合作者只有 Windows 系統&#xff0c;于是只好在 Windows 中配置環境。說實話還真的是挺折磨的。。。 一、下載 Anaconda 可以通過清華源下載 Anaconda&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/anaconda/ar…

算法leetcode|70. 爬樓梯(rust重拳出擊)

文章目錄 70. 爬樓梯&#xff1a;樣例 1&#xff1a;樣例 2&#xff1a;提示&#xff1a; 分析&#xff1a;題解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a; 70. 爬樓梯&#xff1a; 假設你正在爬樓梯。需要 n 階你才能到達樓…

奧威BI數據可視化工具:報表就是平臺,隨時自助分析

別的數據可視化工具&#xff0c;報表就只是報表&#xff0c;而奧威BI數據可視化工具&#xff0c;一張報表就約等于一個平臺&#xff0c;可隨時展開多維動態自助分析&#xff0c;按需分析&#xff0c;立得數據信息。 奧威BI是一款多維立體分析數據的數據可視化工具。它可以幫助…

電腦xinput1_3.dll丟失的解決方法?哪個解決方法更簡單

最近在打開軟件或者游戲的時候&#xff0c;電腦提示xinput1_3.dll文件丟失的錯誤。這個問題導致我無法運行某些游戲和應用程序。通過一番嘗試和研究&#xff0c;我找到了一些修復xinput1_3.dll文件丟失的方法&#xff0c;并在此分享給大家。 首先&#xff0c;我了解到xinput1_3…

如何使用PHP編寫爬蟲程序

在互聯網時代&#xff0c;信息就像一條無休無止的河流&#xff0c;源源不斷地涌出來。有時候我們需要從Web上抓取一些數據&#xff0c;以便分析或者做其他用途。這時候&#xff0c;爬蟲程序就顯得尤為重要。爬蟲程序&#xff0c;顧名思義&#xff0c;就是用來自動化地獲取Web頁…

NSI45030AT1G LED驅動器方案為汽車外部及內部照明恒流穩流器(CCR)方案

關于線性恒流調節器&#xff08;CCR&#xff09;&#xff1a;是一種用于控制電流的穩定輸出。它通常由一個功率晶體管和一個參考電流源組成。CCR的工作原理是通過不斷調節功率晶體管的導通時間來維持輸出電流的恒定。當輸出電流超過設定值時&#xff0c;CCR會減少功率晶體管的導…

SAP MM學習筆記20- SAP中的英文2 - SD中英文,日語,中文

SD模塊中的英文&#xff0c;日語&#xff0c;中文 對照。 販売管理 日本語英語中國語受注伝票sales order銷售訂單出荷伝票delivery order交貨訂單ピッキングリストpicking list領貨清單シップメント伝票shipment document發運單據出庫確認post goods issue發貨確認請求伝票b…

紅日ATT&CK VulnStack靶場(三)

網絡拓撲 web階段 1.掃描DMZ機器端口 2.進行ssh和3306爆破無果后訪問web服務 3.已知目標是Joomla&#xff0c;掃描目錄 4.有用的目錄分別為1.php 5.configuration.php~中泄露了數據庫密碼 6.administrator為后臺登錄地址 7.直接連接mysql 8.找到管理員表&#xff0c;密碼加密了…

提高學生學習效率的模擬考試系統

在如今競爭激烈的社會環境下&#xff0c;提高學生的學習效率顯得尤為重要。為了幫助學生評估自己的學習水平并提供有針對性的學習建議&#xff0c;開發一款模擬考試系統是非常必要的。 一、學生信息錄入 模擬考試系統首先需要學生信息錄入功能。學生可以通過一個簡單的表單填…