uniapp 实现本地存储读取

要求

1、实现搜索框输入内容按下搜索按钮或回车后,将搜索框的内容存入本地,

2、以搜索历史记录的形式读取本地数据

3、添加一个清空历史记录的功能

html部分

<view>
	<view class="x">
		<u-search style=" border-radius: 20px;" placeholder="输入小区/商圈/地铁站等" actionText='' searchIcon=''
				@search="Storage" v-model="setval"></u-search>
			<view class="show">
				<text style="color: #787C7D;">搜索历史</text>
				<u-icon @click="historeDelete" name="trash" size="30" ></u-icon>
			</view>
				<view style="display: flex; margin-top: 30rpx;" v-for="(item,index) in getval" :key="index">
				<u-icon  name="clock-fill" color="#ccc" size="25"></u-icon>
				<text class="tory1">{{item}}</text>
			</view>
	</view>
</view>

	.x{
		margin: 50rpx auto;
		width: 90%;
		height:600rpx;
		box-shadow: 0 3px 7px #ccc;
		.show{
			display: flex;
			justify-content: space-between;
			padding: 20rpx;
		}
		.tory1 {
			margin-left: 20rpx;
		}
	}

js部分

data() {
			return {
				setval: '',
				getval: [],
			}
		},
onLoad() {
			uni.getStorageSync('token')
			let getval = uni.getStorageSync('token')
			console.log('1111', getval); // ['苹果']
			if (getval) {
				this.getval = JSON.parse(getval)
			}
		},
methods: {
			Storage() {
				if (!this.setval) return;  // 判断一下输入框是否有内容
				let searchval = this.setval  
				// 使用findindex方法查询一下本地数据中是否有与输入内容重复的
				let syncval = this.getval.findIndex(item => item == this.setval)
				if(syncval>-1){
					this.getval.splice(syncval)
					// 此时添加成功了,但是本地中显示为空数组
				}
				// 所以需要在指定位置添加数据
				this.getval.unshift(this.setval)				
				// 将输入框的数据转化为字符串后存入
				uni.setStorageSync('token', JSON.stringify(this.getval))
			},
			// 清空按钮
			historeDelete(){
				const that=this
				uni.showModal({
					title:"温馨提示",
					content:"是否确认清空",
					success(res){
						if(res.confirm){
							that.getval=[]
							uni.removeStorageSync('token')
						}
					}
				})
			}
		}
	}

效果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值