Vue搜索框显示最近(历史)搜索记录

效果:

在这里插入图片描述

实现:

当按回车键的时候会将最近搜索的内容展示出来。
(一)HTML

 <el-input
     @input="searchContent($event)"
     v-model="keywords"
     @keyup.enter.native="submit"
     size="small"
     id="input"
     class="input"
     placeholder="请输入内容"
     @focus="onInputFocus"
     @blur="onInputBlus"> 
</el-input>
              
 <div class="allHislist">
    <span
      v-for="(item, index) in allHislist"
      :key="index"
      v-show="allHislistShow">
      {{ item }}</span >
</div>

(二)Script

  // 搜索框输入的内容
      keywords: "",
 //查询返回的内容
      dataList: [],
 // 最近搜索列表
      hislist: [],
 

(三) 方法

 created() {
 let all = localStorage.allHislist;
    if (all) {
      // 将数组转字符串
      this.allHislist = JSON.parse(all);
    }
}
submit() {
	//判断是否有重复
     var index = this.allHislist.findIndex((ele) => {
       return ele == this.keywords;
     });
     //如果有的话就删除重复
     if (index != -1) {
       this.allHislist.splice(index, 1);
     }
     //向数组第一位添加
     this.allHislist.unshift(this.keywords);
     //如果数组长度大于4 就删除最后一项
     if (this.allHislist.length > 4) {
       this.allHislist.splice(5, 1);
     }
     // 本地存储历史记录数组
     localStorage.allHislist = JSON.stringify(this.allHislist);
     
     }

Vue2框架中,实现搜索框历史记录可以使用localStorage存储搜索记录,并在页面中展示出来。 下面是一个简单的实现代码: ```html <!-- 搜索框 --> <input type="text" v-model="keyword" @keyup.enter="search" /> <!-- 历史记录 --> <div v-if="history.length > 0"> <h3>搜索历史</h3> <ul> <li v-for="(item, index) in history" :key="index" @click="selectHistory(item)"> {{ item }} </li> </ul> </div> ``` ```javascript export default { data() { return { keyword: '', history: [] } }, mounted() { // 从localStorage中读取历史记录 this.history = JSON.parse(localStorage.getItem('searchHistory')) || [] }, methods: { search() { // 搜索处理 // ... // 存储搜索记录到localStorage中 if (this.keyword.trim() !== '') { this.history.unshift(this.keyword) localStorage.setItem('searchHistory', JSON.stringify(this.history)) } }, selectHistory(item) { // 点击历史记录处理 this.keyword = item this.search() } } } ``` 以上代码中,使用了v-model指令将搜索框的值与Vue实例的`keyword`属性进行绑定,使用了`@keyup.enter`事件监听回车键,触发`search`方法进行搜索处理。在搜索处理中,将搜索关键字存储到历史记录中,并使用`localStorage`进行本地存储。在页面中展示历史记录时,使用`v-for`指令遍历历史记录数组,使用`@click`事件监听点击事件,触发`selectHistory`方法进行搜索处理。 需要注意的是,以上代码只是一个简单的实现示例,实际应用中还需要进行一些优化,比如设置历史记录的最大数量、去重等。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值