uniapp数据点击的时候将数据存入同一个本地存储中并且最大限度5个

简介: uniapp数据点击的时候将数据存入同一个本地存储中并且最大限度5个

比如你想要存储信息最大限度5个,当然也可以存入更多,更改一下设置即可

让他this.storedData.length >= 数值即可

data部分

data() {
    return {
      storedData: [], // 用于存储点击获取的数据
      list: [
        { name: '张三', id: 1 },
        { name: '李四', id: 2 },
        { name: '王五', id: 3 },
        { name: '阡陌', id: 4 },
        { name: '啄木鸟', id: 5 },
      ],
    };
  },

js部分

str(s) {
      if (this.storedData.length >= 5) {
        // 如果数组长度超过5个数据,删除最早添加的数据
        this.storedData.shift();
      }
      // 将数据添加到数组中
      this.storedData.push(s);
      // 更新本地存储的数据
      uni.setStorageSync('storedDataKey', this.storedData);
    },
  1. str(s)方法:
  • 这是一个自定义的方法,当你调用它时,需要传入一个参数 s,代表要存储的数据。
  • 在方法内部,它首先检查 this.storedData 数组的长度是否已经达到了5个数据项,因为你希望最多存储5个数据。
  • 如果数组长度超过5个,它使用 this.storedData.shift() 来删除数组的第一个元素,这样可以确保数组保持在5个数据项以内。
  • 接下来,它将参数 s 添加到 this.storedData 数组中,以便将新数据存储在数组中。
  • 最后,它使用 uni.setStorageSync 方法将更新后的数组存储在本地存储中,使用 'storedDataKey' 作为存储的键名。
mounted() {
    // 在页面加载时,从本地存储中获取数据
    this.storedData = uni.getStorageSync('storedDataKey') || [];
  },
  1. mounted()钩子:
  • 这是 Vue 生命周期中的一个钩子,在页面加载时自动调用。
  • mounted 钩子中,它使用 uni.getStorageSync 方法尝试从本地存储中获取之前存储的数据,通过 'storedDataKey' 键名。
  • 如果之前没有存储数据,它会初始化 this.storedData 为一个空数组 []

这段代码的目的是,每次调用 str(s) 方法时,将数据添加到 this.storedData 数组中,限制数组长度最多为5个,然后将更新后的数组存储在本地存储中。在页面加载时,从本地存储中获取已存储的数据,以便在页面重新加载后恢复之前的数据状态。这是一种基本的本地数据管理模式,用于存储有限数量的数据并在应用重新启动后保持数据状态。

html部分

<template>
  <view>
    <view class="">
      点击下方获取数据存储
    </view>
    <view class="" style="font-size: 40rpx;" v-for="(item, index) in list" :key="index" @click="str(item)">
      {{ item.name }}
    </view>
  <!-- 存储预览 -->
  <view class="">
    <view class="">
      存储的数据
    </view>
    <view class="" v-for="(item, index) in storedData" :key="index" >
      {{item.name}}
    </view>
  </view>
  </view>
</template>

完整代码预览

<template>
  <view>
    <view class="">
      点击获取数据存储
    </view>
    <view class="" style="font-size: 40rpx;" v-for="(item, index) in list" :key="index" @click="str(item)">
      {{ item.name }}
    </view>
  <!-- 存储的数据 -->
  <view class="">
    <view class="">
      存储的数据
    </view>
    <view class="" v-for="(item, index) in storedData" :key="index" >
      {{item.name}}
    </view>
  </view>
  </view>
</template>
<script>
export default {
  data() {
    return {
      storedData: [], // 用于存储点击获取的数据
      list: [
        { name: '张三', id: 1 },
        { name: '李四', id: 2 },
        { name: '王五', id: 3 },
        { name: '阡陌', id: 4 },
        { name: '啄木鸟', id: 5 },
      ],
    };
  },
  methods: {
    str(s) {
      if (this.storedData.length >= 5) {
        // 如果数组长度超过5个数据,删除最早添加的数据
        this.storedData.shift();
      }
      // 将数据添加到数组中
      this.storedData.push(s);
      // 更新本地存储的数据
      uni.setStorageSync('storedDataKey', this.storedData);
    },
  },
  mounted() {
    // 在页面加载时,从本地存储中获取数据
    this.storedData = uni.getStorageSync('storedDataKey') || [];
  },
};
</script>
<style>
</style>
目录
相关文章
|
7月前
|
移动开发 JavaScript 小程序
uniapp中间加号点击弹窗怎么实现?完整教程
uniapp中间加号点击弹窗怎么实现?完整教程
569 1
uniapp中间加号点击弹窗怎么实现?完整教程
|
7月前
|
JavaScript Java Android开发
uniapp通过蓝牙传输数据 (安卓)
uniapp通过蓝牙传输数据 (安卓)
336 1
|
7月前
|
存储 移动开发 缓存
uniapp本地存储的几种方式
uniapp本地存储的几种方式
702 0
|
7月前
uniapp点击图片预览功能?
uniapp点击图片预览功能?
|
2月前
|
JSON 数据可视化 JavaScript
低代码可视化-uniapp响应式数据data-代码生成器
低代码可视化-uniapp响应式数据data-代码生成器
44 0
|
5月前
|
前端开发
uniapp 数据父传子
在uni-app中,父组件向子组件传递数据主要通过属性绑定的方式实现。这里提供一个简单的示例来说明如何进行父传子的数据传递:
55 1
uniapp 数据父传子
|
5月前
|
存储
uniapp实战 -- 个人信息维护(含选择图片 uni.chooseMedia,上传文件 uni.uploadFile,获取和更新表单数据)
uniapp实战 -- 个人信息维护(含选择图片 uni.chooseMedia,上传文件 uni.uploadFile,获取和更新表单数据)
179 2
|
5月前
uniapp实战 —— 轮播图【数字下标】(含组件封装,点击图片放大全屏预览)
uniapp实战 —— 轮播图【数字下标】(含组件封装,点击图片放大全屏预览)
111 1
|
7月前
|
存储 开发框架 安全
【Uniapp 专栏】探索 Uniapp 的本地存储功能特点
【5月更文挑战第14天】Uniapp的本地存储功能是其跨平台开发的强大优势,提供数据持久化的存储、读取,支持多种数据类型。其特点是简单易用、跨平台一致且有一定安全性。通过键值对存储和容量管理,适应不同应用场景,如用户登录信息存储和应用配置保存。同时,注意性能优化、数据清理和安全保护。与其他框架比较,Uniapp有独特优势,并将持续发展以满足复杂需求。开发者应根据业务需求设计存储策略,确保数据安全高效使用。
254 2
【Uniapp 专栏】探索 Uniapp 的本地存储功能特点
|
6月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的共享单车数据存储系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的共享单车数据存储系统附带文章源码部署视频讲解等
52 1