色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

使用Vue3+Vant組件實(shí)現(xiàn)App搜索歷史記錄功能(示例代碼)

瀏覽:2日期:2022-09-28 18:40:46

最近在開發(fā)一款新的app項(xiàng)目,我自己也是第一次接觸app開發(fā),經(jīng)過團(tuán)隊(duì)的一段時(shí)間研究調(diào)查,決定使用Vue3+Vant前端組件的模式進(jìn)行開發(fā),vue2開發(fā)我們已經(jīng)用過幾個(gè)項(xiàng)目了,所以決定這一次嘗試使用Vue3來進(jìn)行前段開發(fā)。我剛開始負(fù)責(zé)搜索功能的開發(fā),有歷史搜索記錄的需求,一開始我認(rèn)為這是記錄的存儲(chǔ)信息也會(huì)放在一個(gè)數(shù)據(jù)庫表里面,但經(jīng)過一番調(diào)查,發(fā)現(xiàn)并不是這樣,而是要存儲(chǔ)在本地。但是網(wǎng)上的方法也并沒有完全解決問題,經(jīng)過一番嘗試,終于給搞好了,話不多說,直接上效果圖。初始化不顯示歷史搜索記錄

使用Vue3+Vant組件實(shí)現(xiàn)App搜索歷史記錄功能(示例代碼)

回車搜索進(jìn)入詳情頁面

使用Vue3+Vant組件實(shí)現(xiàn)App搜索歷史記錄功能(示例代碼)

歷史記錄頁面

使用Vue3+Vant組件實(shí)現(xiàn)App搜索歷史記錄功能(示例代碼)

清除歷史記錄

使用Vue3+Vant組件實(shí)現(xiàn)App搜索歷史記錄功能(示例代碼)

首先創(chuàng)建一個(gè)js文件這個(gè)js文件主要包括了增加歷史記錄信息,刪除所有歷史記錄信息的功能

export default { // 添加搜索首頁歷史查詢記錄 addSearchHistory(state, payload) { // list中包含該記錄的時(shí),刪除 const index = state.searchHistoryList.indexOf(payload); if (index > -1) { state.searchHistoryList.splice(index, 1); } state.searchHistoryList.unshift(payload); // 歷史記錄中最大記20個(gè)記錄 const count = state.searchHistoryList.length; state.searchHistoryList.splice(20, count); }, // 清除搜索首頁歷史查詢記錄 clearSearchHistory(state) { state.searchHistoryList = []; },};

Vue代碼塊

<template> <!-- 搜索框 --> <search-bar @searchClick='searchClick' :placeholderValue='state.placeholderValue' :searchVal='state.searchVal'> </search-bar> <div class='search'> <!-- 搜索歷史 --> <div v-if='state.isShowHistory'> <span class='proHot'>搜索歷史</span> <span @click='delHostClick'>清除歷史</span> <!-- 存放歷史記錄信息 --> <div class='searchBtn-div'><span v-for='(item, index) in state.historyList' :key='index' ><van-button round size='small' @click='searchValClick(item)' >{{ item }}</van-button> </span> </div> </div> </div></template><script>import { onMounted, reactive, getCurrentInstance,} from ’vue’;import { Toast, Dialog } from ’vant’;import searchBar from ’@/components/SearchBar.vue’;import { useRouter } from ’vue-router’;import { useStore } from ’vuex’;export default { components: { searchBar, }, setup() { const router = useRouter(); const store = useStore(); const { proxy } = getCurrentInstance(); const state = reactive({ isShowHistory: ’’, // 是否顯示歷史記錄 searchVal: ’’, // 搜索關(guān)鍵字 placeholderValue: ’搜索產(chǎn)品/資訊/標(biāo)準(zhǔn)/成分/企業(yè)’, historyList: [], // 歷史搜索數(shù)據(jù) }); // 回車搜索 const searchClick = (val) => { store.commit(’addSearchHistory’, val); // router.push({ path: ’/search-detail’, query: { searchVal: val } }); }; // 清除歷史記錄 const delHostClick = async () => { Dialog.confirm({message: ’確定要?jiǎng)h除歷史搜索嗎?’, }).then(() => {store.commit(’clearSearchHistory’, store);state.isShowHistory = false;Toast({ message: ’刪除成功’, position: ’bottom’,}); }); };// 初始化獲取歷史搜索記錄信息 onMounted(async () => { // 獲取歷史搜索信息 state.historyList = store.state.searchHistoryList; // 判斷初始化是否顯示歷史搜索 if (state.historyList.length > 0) {state.isShowHistory = true; } else {state.isShowHistory = false; } }); return { state, searchClick, delHostClick, }; },};</script><style lang='less' scoped></style>

Vue代碼直接粘貼復(fù)制的話可能沒法直接用,因?yàn)檫@里面有好多業(yè)務(wù)代碼已經(jīng)刪除,留下的主要是歷史搜索記錄的代碼。主要有三個(gè)重點(diǎn):

引入useStore

import { useStore } from ’vuex’;const store = useStore();

初始化檢索歷史搜索記錄

// 初始化獲取歷史搜索記錄信息// 每次加載這和頁面都會(huì)首先調(diào)用這個(gè)方法,來取最新的信息 onMounted(async () => { // 獲取歷史搜索信息 state.historyList = store.state.searchHistoryList; // 判斷初始化是否顯示歷史搜索 if (state.historyList.length > 0) {state.isShowHistory = true; } else {state.isShowHistory = false; } })

搜索框觸發(fā)搜索事件將搜索信息存放在Store中

// 子組件發(fā)射一個(gè)事件,父組件調(diào)用 const searchClick = (val) => { // 將搜索值放入歷史記錄中 store.commit(’addSearchHistory’, val); // 路由跳轉(zhuǎn)可以忽略 // router.push({ path: ’/search-detail’, query: { searchVal: val } }); };

清空歷史記錄

// 清除歷史記錄 const delHostClick = async () => { Dialog.confirm({message: ’確定要?jiǎng)h除歷史搜索嗎?’, }).then(() => { // 清空歷史記錄信息store.commit(’clearSearchHistory’, store);state.isShowHistory = false;Toast({ message: ’刪除成功’, position: ’bottom’,}); }); };

以上就是使用Vue3+Vant組件實(shí)現(xiàn)App搜索歷史記錄功能的詳細(xì)內(nèi)容,更多關(guān)于vue 搜索歷史記錄的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 国产精品一级视频 | 国内精品久久久久久久久久影视 | 国产日韩精品一区二区在线观看 | 日本成人中文字幕 | 午夜看片a福利在线 | 中文字幕99在线精品视频免费看 | 久久免费视频在线观看30 | 成人性欧美丨区二区三区 | 日韩一区二区三区免费视频 | 欧美成人免费在线视频 | 黄色网址网站在线观看 | 国产精品永久免费视频观看 | 国产日韩一区二区三区 | 一男一女的一级毛片 | 神马我我不卡伦影视 | 欧美激情国产一区在线不卡 | 亚洲天堂一区二区 | 精品国产一区二区三区不卡蜜臂 | 毛片大全在线观看 | 一区二区三区国产 | 国产精品久久久久影院色老大 | 亚洲成人免费视频 | 在线国产网站 | 亚洲日本一区二区三区高清在线 | 精品中文字幕在线观看 | 成人午夜视频在线观 | 久久99精品久久久久久野外 | 亚洲国产第一区二区香蕉 | 国产性生交xxxxx免费 | 午夜精品尤物福利视频在线 | 欧美福利一区二区三区 | 久久影院在线 | 韩国毛片免费播放 | 丝袜美腿在线不卡视频播放 | 欧美精品久久一区二区三区 | 亚洲午夜久久久久国产 | 一级毛片不卡片免费观看 | 爱爱客影院在线影院gf发现 | 亚洲伦| 国产一区亚洲二区三区毛片 | 欧美日本一道高清二区三区 |