欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

小程序中搜索历史记录的相关方法

程序员文章站 2022-07-03 09:11:29
...

1. 搜索记录的翻转

说明:最新搜索的关键字在最前面

history:[] // 保存搜索关键字

computed:{
 reverseHistory(){
  // 将history数据解构赋值给新的数组,在新的数组上进行翻转,因为reverse()方法会修改history数组
  return [...this.history].reverse()
 }
}

2. 搜索记录的去重

说明:当搜索的关键字重复后,将此关键字展示在最前面

saveHistory(){
 // 关键字去重
 // 创建set对象,保存搜索关键字
 const set = new Set(this.history)
 // 当输入的关键字有重复时,删除已存在的关键字
 set.delete(this.kw)
 // 将新搜索的关键字添加到set对象
 set.add(this.kw)
 // Array.from() 将对象转化成数组
 this.history = Array.from(set)
}

3. 搜索记录的永久保存

history:uni.getStorageSync('history') || '[]',// 搜索关键字

saveHistory(){
 // 关键字去重
 // 创建set对象,保存搜索关键字
 const set = new Set(this.history)
 // 当输入的关键字有重复时,删除已存在的关键字
 set.delete(this.kw)
 // 将新搜索的关键字添加到set对象
 set.add(this.kw)
 // Array.from() 将对象转化成数组
 this.history = Array.from(set)
 // 持久化存储			
 uni.setStorageSync('history',JSON.stringify(this.history))
}

4. 清空搜索记录

removeHistory(){
 // 询问用户是否清空
 uni.showModal({
  title:'提示',
  content:'是否清空历史搜素记录?',
  success: e => {
   if(e.confirm){
    // 清空
    this.history = []
    // 持久化存储							    
    uni.setStorageSync('history',JSON.stringify(this.history))
   }
  }
 })
}