使用cookie實現歷史搜索記錄功能


在學習網易雲音樂項目的時候,有一個歷史搜索記錄的功能,

就是你點擊的關鍵詞被記錄下來,然后顯示在搜索歷史記錄里;

 

 主要實現方法:

項目中使用的是 'good-storage' :  https://www.npmjs.com/package/good-storage

1、npm i good-storage

2、在組件中導入

import storage from 'good-storage';

3、我的搜索列表和搜索歷史列表的DOM結構

<!-- 熱門搜索 -->
        <div class="block">
          <p class="title">熱門搜索</p>
          <div class="tags">
            <el-button
              class="btn"
              size="mini"
              v-for="(item, i) in searchHots"
              :key="i"
              @click="onClickHot(item)"
            >{{item.first}}</el-button>
          </div>
</div>
<!-- 搜索歷史 -->
        <div class="block">
          <p class="title">搜索歷史</p>
          <div class="tags">
            <el-button
              class="btn"
              size="mini"
              v-for="(item, i) in searchHistorys"
              :key="i"
            >{{item.first}}</el-button>
          </div>
</div>

4、點擊熱門搜索的每個button按鈕的時候,獲取它的關鍵詞(比如我點擊“六一快樂”,就把“六一快樂”這個關鍵詞保留下來)

methods部分:

 onClickHot(item) {
      const { first } = item;
      this.goSearch(first);
},
goSearch(keyWords) {
      this.searchHistorys.push({ first: keyWords });
      storage.set(SEARCH_HISTORY_KEY, this.searchHistorys);
      this.$router.push(`/search/${keyWords}`);
      this.showSearchPane = false;
}

點擊一個熱門搜索,就把搜索的關鍵詞放到搜索列表數組searchHistorys中,然后把它存到cookie中

const SEARCH_HISTORY_KEY = '__search_history__';

 

data部分:

搜索歷史記錄從cookie中取出來

data() {
    return {
      searchValue: '',
      showSearchPane: false,
      searchHots: [],
      searchHistorys: storage.get(SEARCH_HISTORY_KEY, []),
      suggest: []
    };

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM