实现搜索历史的记录 (记录到本地存储中)

  1. 什么是本地存储: 把数据存储到电脑本地(电脑的某个文件里面 ) 通过浏览器来存储的

  2. 有哪些本地存储的方式 : localStorage sessionStorage

    • localStorage 永久存储 只要不清空浏览器记录和手动删除存储记录 存储是一只存在的

    • sessionStorage 临时存储 当浏览器关闭的时候就自动清空

  3. 为什么要使用本地存储来实现搜素历史记录: 搜素历史记录的记录信息永久存储的 类似JD淘宝搜索记录都是保存在本地存储

  4. 本地存储 localStorage的使用

    • 获取本地存储的对象

      window.localStorage

    • 使用本地存储对象实现数据存储

      window.localStorage.setItem('键',要存储的值);

    • 使用本地存储来获取存储的数据

      window.localStorage.getItem('键')

    • 注意:本地存储的存储值和获取值都是只能是字符串类形(JSON格式的字符串)

    • 如果需要存储复杂类型的数据比如对象 数组, 就要把对象 数组转换成json格式的字符串, 再存储到本地存储中

      • JSON.stringify(arr) 转成JSON格式的字符串

    • 获取本地存储中的JSON字符串,如果需要使用数组一些方法push(), 把JSON格式字符串转成数组 JSON.parse()

      给数组添加数据 arr.push({'search':'新的值'})

    • 添加了新的值 arr.push({'search':'新的值'})之后, 又要把push之后的数组存储到本地存储中

      window.localStorage.setItem('searchData',JSON.stringify(arr));

    • 本地存储的注意点

      • 本地存储中存储的值只能是字符串类型 存储类型数据 使用JSON.stringify(复杂类型数据) 再存储到本地存储

      • 获取本地存储的值如果是复杂类型的数据的字符串使用JSON.parse(复杂类型字符串) 转成JS能够识别的复杂类型对象 或者数组

在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`方法进行搜索处理。 需要注意的是,以上代码只是一个简单的实现示例,实际应用还需要进行一些优化,比如设置历史记录的最大数量、去重等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值