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


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

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

    data部分

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

    js部分

    1. str(s) {
    2. if (this.storedData.length >= 5) {
    3. // 如果数组长度超过5个数据,删除最早添加的数据
    4. this.storedData.shift();
    5. }
    6. // 将数据添加到数组中
    7. this.storedData.push(s);
    8. // 更新本地存储的数据
    9. uni.setStorageSync('storedDataKey', this.storedData);
    10. },
    1. str(s) 方法:

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

      • 这是 Vue 生命周期中的一个钩子,在页面加载时自动调用。
      • mounted 钩子中,它使用 uni.getStorageSync 方法尝试从本地存储中获取之前存储的数据,通过 'storedDataKey' 键名。
      • 如果之前没有存储数据,它会初始化 this.storedData 为一个空数组 []

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

    html部分

    1. <template>
    2. <view>
    3. <view class="">
    4. 点击下方获取数据存储
    5. </view>
    6. <view class="" style="font-size: 40rpx;" v-for="(item, index) in list" :key="index" @click="str(item)">
    7. {{ item.name }}
    8. </view>
    9. <!-- 存储预览 -->
    10. <view class="">
    11. <view class="">
    12. 存储的数据
    13. </view>
    14. <view class="" v-for="(item, index) in storedData" :key="index" >
    15. {{item.name}}
    16. </view>
    17. </view>
    18. </view>
    19. </template>

    完整代码预览

    1. <template>
    2. <view>
    3. <view class="">
    4. 点击获取数据存储
    5. </view>
    6. <view class="" style="font-size: 40rpx;" v-for="(item, index) in list" :key="index" @click="str(item)">
    7. {{ item.name }}
    8. </view>
    9. <!-- 存储的数据 -->
    10. <view class="">
    11. <view class="">
    12. 存储的数据
    13. </view>
    14. <view class="" v-for="(item, index) in storedData" :key="index" >
    15. {{item.name}}
    16. </view>
    17. </view>
    18. </view>
    19. </template>
    20. <script>
    21. export default {
    22. data() {
    23. return {
    24. storedData: [], // 用于存储点击获取的数据
    25. list: [
    26. { name: '张三', id: 1 },
    27. { name: '李四', id: 2 },
    28. { name: '王五', id: 3 },
    29. { name: '阡陌', id: 4 },
    30. { name: '啄木鸟', id: 5 },
    31. ],
    32. };
    33. },
    34. methods: {
    35. str(s) {
    36. if (this.storedData.length >= 5) {
    37. // 如果数组长度超过5个数据,删除最早添加的数据
    38. this.storedData.shift();
    39. }
    40. // 将数据添加到数组中
    41. this.storedData.push(s);
    42. // 更新本地存储的数据
    43. uni.setStorageSync('storedDataKey', this.storedData);
    44. },
    45. },
    46. mounted() {
    47. // 在页面加载时,从本地存储中获取数据
    48. this.storedData = uni.getStorageSync('storedDataKey') || [];
    49. },
    50. };
    51. </script>
    52. <style>
    53. </style>

  • 相关阅读:
    关于嵌入式容器技术的调研
    Spring 5 学习整理
    VS2017+Qt5.12使用问题笔记
    Java基础:入门程序、常量、变量
    C++(string 类模拟实现)
    [面试直通版]数据库核心之DB,表,视图,事务与函数
    c++ 左值引用 右值引用 及 参数引用 & 与&&
    Linux —— linuxdeployqt源码编译与打包
    九、T100月加权成本次要素分析篇
    java项目-第96期基于ssm+hadoop+spark的电影推荐系统-大数据毕业设计
  • 原文地址:https://blog.csdn.net/A12536365214/article/details/133092484