Uniapp中实现搜索历史记录展示

本文描述了一个使用Vue.js开发的应用场景,通过记录用户搜索历史,实现倒序显示并支持点击搜索。当用户输入新搜索词时,会存储到本地并自动管理展示条数,以提供便捷的搜索体验。
摘要由CSDN通过智能技术生成

用户搜索时,记录用户搜索的历史记录,倒序排列,点击对应的搜索记录文字,也能进行搜索。效果如下图:

<script>
	export default {
		data() {
			return {
				historyLIst:[],
				productNames:["测试1","测试2","测试3","测试4","测试5","测试6"]
			}
		},
		onLoad() {
			//进入搜索页面时将存储在本地的历史记录取出并展示
			let history = uni.getStorageSync("history");
			if(history){
				this. historyList = JSON.parse(history);
				console.log(this.historyList)
			}
		},
		methods: {
			doSearch(searchStr){//用户搜索时将搜索文字存储
				this.historyList = this.historyList.concat(searchStr);//将搜索内容存储在Array中
				this.historyList = Array.from(new Set(this.historyList.reverse()));//反转数组及去除数组中的重复搜索的相同文字
				if(this.historyList.length>6){
					this.historyList = this.historyList.slice(0,6);//设置展示的历史搜索记录的个数
				}
				uni.setStorageSync("history",JSON.stringify(this.historyList));//将历史记录存储在本地localStorage中
			}
		}
	}
</script>

Uniapp,如果要实现历史记录的功能,可以考虑使用云数据库。云数据库是一种托管的服务,可以让你方便地存储和访问数据。在Uniapp使用云数据库,可以通过调用相应的API来实现数据的读取和写入操作。 首先,你可以使用云开发的功能来创建一个云数据库,并在云数据创建一个用于存储历史记录的集合。 接着,在需要保存历史记录的地方,可以通过调用云数据库的API将数据插入到集合。为了保证数据的唯一性,可以在插入数据时添加UNIQUE约束,防止重复插入。如果已经存在相同的记录,可以通过try-catch语句来执行数据更新操作,确保数据保持最新状态。 例如,你可以使用如下代码来插入数据并更新已存在的记录: ```javascript let insertData = `UPDATE im_record SET time="${item.lastMessage.lastTime}", im_detail="${AESUtil.encrypt(JSON.stringify(item)).replaceAll('/','-')}" WHERE conversationID="${item.conversationID}"`; // 调用云数据库的API来执行插入数据或更新已存在的记录 // ... ``` 这样,在云数据就可以保存历史记录,并且确保数据的唯一性。 通过使用云数据库,你可以在Uniapp实现方便的历史记录功能,并且避免了手动处理数据的复杂性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [uniapp 使用sqlite存储聊天记录篇](https://blog.csdn.net/python181/article/details/124142723)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风飘bill

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值