前端Vue自定義頂部搜索框:實現熱門搜索與歷史搜索功能

前端Vue自定義頂部搜索框:實現熱門搜索與歷史搜索功能

摘要:
隨著前端開發復雜性的增加,組件化開發成為了提高效率和降低維護成本的有效手段。本文介紹了一個基于Vue的前端自定義頂部搜索框組件,該組件不僅具備基本的搜索功能,還集成了熱門搜索和歷史搜索特性,為開發者提供了一個高效、可復用的解決方案。

一、背景與意義

在前端開發中,搜索框是許多應用中不可或缺的一部分。傳統上,搜索框的實現往往與整個應用緊密耦合,導致開發和維護的復雜性較高。通過組件化的方式,我們可以將搜索框作為一個獨立的組件進行開發,使其更加靈活、可復用。此外,集成熱門搜索和歷史搜索功能可以為用戶提供更加便捷、個性化的搜索體驗。

二、Vue組件化開發的優勢

Vue作為一款流行的前端框架,其組件化開發的特點使得開發者能夠更加高效地進行前端開發。通過Vue的組件化開發,我們可以將搜索框拆分為一個獨立的組件,實現單獨開發、單獨維護,并且可以與其他組件進行靈活的組合,從而提高開發效率和降低維護成本。

三、自定義頂部搜索框的設計與實現

1. 組件結構

自定義頂部搜索框組件主要包括搜索框、熱門搜索列表和歷史搜索列表三部分。搜索框用于用戶輸入搜索關鍵詞,熱門搜索列表顯示用戶搜索頻率較高的關鍵詞,歷史搜索列表則記錄用戶的搜索歷史。

2. 數據處理

組件通過props接收一個名為skipUrl的屬性,該屬性指定了搜索跳轉的目標URL。當用戶在搜索框中輸入關鍵詞并點擊搜索按鈕時,組件會構造一個帶有搜索關鍵詞的URL,并通過router.push方法跳轉到目標頁面。同時,組件還會將用戶輸入的關鍵詞保存到本地存儲中,以便實現熱門搜索和歷史搜索功能。

3. 熱門搜索與歷史搜索的實現

熱門搜索功能通過統計用戶搜索關鍵詞的頻率來實現。每當用戶進行一次搜索時,組件都會更新熱門搜索列表。歷史搜索功能則通過記錄用戶搜索歷史來實現。用戶可以通過點擊歷史搜索列表中的關鍵詞快速進行搜索。

效果圖如下:

圖片

圖片

四、組件代碼實現

組件使用方法
<!-- 自定義頂部搜索框 用于搜索跳轉 skipUrl:跳轉url為絕對路徑 /pages開頭 --><cc-headSearch skipUrl="/pages/index/search"></cc-headSearch>
HTML代碼實現部分
<template><view class="content"><!-- 自定義頂部搜索框 用于搜索跳轉 skipUrl:跳轉url為絕對路徑 /pages開頭 --><cc-headSearch skipUrl="/pages/index/search"></cc-headSearch><!-- 1.推薦流貸產品”“推薦固貸產品”“推薦供應鏈產品”“推薦綜合服務” --><div class="mui-content-padded"><!-- 列表組件 --><CCBProjectList :productList="projectList" @click="goProDetail"></CCBProjectList></div></view>
</template><script>import CCBProjectList from '../../components/CCProjectList.vue';export default {components: {CCBProjectList},data() {return {skipUrl: '',// 列表數組projectList: []}},mounted() {this.requestData();},methods: {requestData() {// 模擬請求參數設置let reqData = {'area': '',"pageSize": 10,"pageNo": this.curPageNum}// 模擬請求接口this.totalNum = 39;this.projectList = [];for (let i = 0; i < 10; i++) {this.projectList.push({'proName': '商品名稱' + i,'proUnit': '商品詳情' + i,'area': '商品介紹','proType': '優質','stage': '七天無理由退貨','id': i + ''});}}}}
</script><style>page {background-color: #f7f7f7;}.content {display: flex;flex-direction: column;}.mui-content-padded {margin: 0px 14px;/* background-color: #ffffff; */}
</style>

五、總結與展望

本文介紹了一個基于Vue的前端自定義頂部搜索框組件,該組件不僅具備基本的搜索功能,還集成了熱門搜索和歷史搜索特性。通過組件化的開發方式,我們實現了單獨開發、單獨維護,并且可以與其他組件進行靈活的組合,大大提高了開發效率和降低了維護成本。未來,我們可以進一步優化該組件的性能和用戶體驗,例如增加搜索建議、搜索結果高亮等功能。

項目下載地址:

https://ext.dcloud.net.cn/plugin?id=13128

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

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

相關文章

powershell腳本批量拉取 git倉庫文件

# 定義基礎URL和數據庫列表 $BASE_URL "http://8.8.11.99:8999/yaya/" $DATABASES "common-service", "bi-system", "erp", "gateway", "pdm", "plm", "public-service", "scm"…

Micro SD封裝是什么?

我們了解客戶對于Micro SD封裝的疑問。在這篇文章中&#xff0c;我們將詳細解釋Micro SD封裝是什么&#xff0c;以及其在存儲領域的技術原理和應用情況&#xff0c;幫助客戶更好地理解這一技術。 1. Micro SD封裝的定義 Micro SD封裝是指一種特定尺寸的存儲芯片封裝方式&#x…

windows 11 23H2更新總是失敗解決過程

頻繁更新失敗的困擾 最近一個月以來 windows 11 系統 23H2 更新總是失敗&#xff0c;更新失敗會撤銷更改: 之后會自動重啟系統&#xff0c;但是重啟進不去系統&#xff0c;屏幕有背光但是不顯示任何內容。 這時候只能長按開機鍵強制關機。每次出現這種情況我都沒辦法遠程連接到…

大規模團隊的數據庫開發,如何用OceanBase工具快速建立企業級賬號體系

前言 為了讓數據庫開發的安全性與可靠性得以充分保障&#xff0c;數據庫開發工具的管控能力顯得尤為關鍵。構建一個健全的賬號體系&#xff0c;能夠協助開發團隊實現對數據庫開發工具的全方位管控&#xff0c;從而有效防范各類數據安全隱患&#xff0c;確保數據庫開發的順利進…

【Python】搭建pypi私倉

1. 下載依賴 pip install pypiserver # 命令安裝 pypiserver 庫 pip install passlib # passlib 包來讀取 Apache htpasswd 文件apt-get install -y apache2-utils2. 生成密碼 使用htpasswd庫在指定路徑/path/to/.pypipasswd生成密碼文件 htpasswd -c /path/to/.pypipasswd …

【開源】租房管理系統 JAVA+Vue+SpringBoot+MySQL

目錄 一、系統介紹 租客屋主模塊 房源信息模塊 租客評價模塊 房源訂單模塊 留言板模塊 二、系統截圖 三、核心代碼 一、系統介紹 基于Vue.js和SpringBoot的租房管理系統&#xff0c;分為管理后臺和用戶網頁端&#xff0c;可以給管理員、租客和屋主角色使用&#xff0c…

大模型應用之基于Langchain的測試用例生成

一 用例生成實踐效果 在組內的日常工作安排中&#xff0c;持續優化測試技術、提高測試效率始終是重點任務。近期&#xff0c;我們在探索實踐使用大模型生成測試用例&#xff0c;期望能夠借助其強大的自然語言處理能力&#xff0c;自動化地生成更全面和高質量的測試用例。 當前…

【cocos creator】進度條控制腳本,支持節點進度條,圖片進度條,進度條組件,和進度文字展示

進度條控制腳本&#xff0c;支持節點進度條&#xff0c;圖片進度條&#xff0c;進度條組件&#xff0c;和進度文字展示 const { ccclass, property, menu } cc._decorator;let text_type cc.Enum({"20%": 0,"1/5": 1,"差值": 2,"自定義…

Django結合Manager重寫create、update、delete方法

想要重寫create、update、delete方法我們先要了解一下其他的知識點 Manager 在Django中&#xff0c;Manager是一個非常核心的概念&#xff0c;它負責與數據庫交互&#xff0c;提供了訪問和管理模型實例&#xff08;即數據庫中的記錄&#xff09;的方式。每個Django模型類默認…

jupyter lab怎么使用cmd打開

我一般都是用vscode&#xff0c;或者pycharm的終端打開 但是我為了秉承程序員的素養&#xff08;就是覺得命令行打開很帥&#xff09; 我試著去直接用一樣的命令&#xff0c;但是不行&#xff0c;顯示不是內部命令之類的。 是因為沒有配置環境變量。 但是我突然發現&#x…

【計算機畢業設計】基于SSM++jsp的汽車客運站管理系統【源碼+lw+部署文檔】

目錄 第1章 緒論 1.1 課題背景 1.2 課題意義 1.3 研究內容 第2章 開發環境與技術 2.1 MYSQL數據庫 2.2 JSP技術 2.3 SSM框架 第3章 系統分析 3.1 可行性分析 3.1.1 技術可行性 3.1.2 經濟可行性 3.1.3 操作可行性 3.2 系統流程 3.2.1 操作流程 3.2.2 登錄流程 3.2.3 刪除信息流…

rpm與yum擴展、命令

目錄 系統安裝軟件方式 1、rpm方式 命令 yum方式 安裝 更新和升級 查找與顯示 刪除程序 清除緩存 僅下載 系統安裝軟件方式 1、rpm方式 優點&#xff1a;無需網絡安裝軟件 缺點&#xff1a;無法解決軟件依賴 命令 rpm -ivh 安裝 --nodeps忽略依賴關系 --force強…

希爾伯特 包絡證明 未出現模態混合現象 是啥?

希爾伯特變換在信號處理中常用于求信號的包絡&#xff0c;它是一種線性運算&#xff0c;能夠將實數信號轉換為其解析信號&#xff0c;即包含原信號及其希爾伯特變換的復數信號。解析信號的實部是原信號&#xff0c;虛部是原信號的希爾伯特變換。 包絡證明 在信號處理中&#…

TypeScript 學習筆記(五):異步編程與錯誤處理

1. 引言 在前幾篇學習筆記中,我們介紹了 TypeScript 的基礎知識、高級類型系統、模塊與命名空間以及裝飾器和高級編程技巧。本篇將重點探討 TypeScript 中的異步編程與錯誤處理,幫助你在實際項目中更好地處理異步操作和錯誤。 2. 異步編程 異步編程是現代 JavaScript 應用…

C語言預處理中#和##運算符是什么意思?

一、問題 有?認為&#xff0c;在C 語?中使?“#”運算符的就是預處理&#xff0c;是不是呢&#xff1f;“##”?是什么呢&#xff1f; 二、解答 在程序中&#xff0c;最為常?的是#define 宏定義指令&#xff0c;下?通過這個指令理解?下“#”的作?。編寫?個預處理指令&a…

人大金倉 KingBase查詢死鎖,釋放死鎖

人大金倉(kingbase)查詢數據庫死鎖及釋放 kingbase鎖表排查以及釋放鎖 總結下 -- 查詢&#xff0c;可自己添加where條件 SELECT * FROM sys_stat_activity WHERE state ! idle AND wait_event_typeLock-- 結束進程 SELECT sys_terminate_backend(pid);

PLC集成BL121PO網關優化智能電網的遠程管理PLC轉OPC UA協議

隨著工業自動化技術的不斷發展&#xff0c;智能電網等復雜系統對于設備之間高效通信的需求日益增加。PLC轉OPC UA協議轉換網關BL121PO作為一款領先的協議轉換設備&#xff0c;通過其獨特的設計和功能&#xff0c;為用戶提供了高效、安全的PLC接入OPC UA的解決方案。 設備概述 …

了解Hive 工作原理:Hive 是如何工作的?

一、概念 1、Hive Apache Hive 是一個分布式的容錯數據倉庫系統&#xff0c;可實現大規模分析和便于使用 SQL 讀取、寫入和管理駐留在分布式存儲中的PB級數據。 Hive是建立在Hadoop之上的數據倉庫框架&#xff0c;它提供了一種類SQL的查詢語言—HiveQL&#xff0c;使得熟悉S…

【深度學習實戰—8】:基于MediaPipe的人臉檢測

?博客主頁&#xff1a;王樂予&#x1f388; ?年輕人要&#xff1a;Living for the moment&#xff08;活在當下&#xff09;&#xff01;&#x1f4aa; &#x1f3c6;推薦專欄&#xff1a;【圖像處理】【千錘百煉Python】【深度學習】【排序算法】 目錄 &#x1f63a;一、Med…

軟件3班20240527

JDK 版本與 Tomcat 的 兼容性