前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[猫头虎分享21天微信小程序基础入门教程] 第14天:小程序的数据存储与本地缓存

[猫头虎分享21天微信小程序基础入门教程] 第14天:小程序的数据存储与本地缓存

作者头像
猫头虎
发布2024-05-28 08:11:28
2630
发布2024-05-28 08:11:28
举报

[猫头虎分享21天微信小程序基础入门教程] 第14天:小程序的数据存储与本地缓存

第14天:小程序的数据存储与本地缓存 📦

自我介绍

大家好,我是猫头虎,一名全栈软件工程师。今天我们继续微信小程序的学习,重点了解如何在小程序中进行数据存储与本地缓存。这些内容可以帮助你在用户设备上存储数据,提高小程序的性能和用户体验。🚀

本地缓存的使用

微信小程序提供了多种 API 用于本地数据存储,其中最常用的是 wx.setStorageSyncwx.getStorageSync

一、使用 wx.setStorageSyncwx.getStorageSync
1. 存储数据
代码语言:javascript
复制
wx.setStorageSync('key', 'value');
wx.setStorageSync('user', { username: '猫头虎', age: 30 });
2. 获取数据
代码语言:javascript
复制
const value = wx.getStorageSync('key');
const user = wx.getStorageSync('user');
console.log(value); // 输出: value
console.log(user); // 输出: { username: '猫头虎', age: 30 }
3. 删除数据
代码语言:javascript
复制
wx.removeStorageSync('key');
4. 清除所有数据
代码语言:javascript
复制
wx.clearStorageSync();
二、使用 wx.setStoragewx.getStorage

wx.setStoragewx.getStorage 是异步版本的存储和获取方法。

1. 存储数据
代码语言:javascript
复制
wx.setStorage({
  key: 'key',
  data: 'value',
  success() {
    console.log('数据存储成功');
  },
  fail(err) {
    console.error('数据存储失败:', err);
  }
});
2. 获取数据
代码语言:javascript
复制
wx.getStorage({
  key: 'key',
  success(res) {
    console.log('获取数据成功:', res.data);
  },
  fail(err) {
    console.error('获取数据失败:', err);
  }
});

数据存储的最佳实践

一、存储用户数据

在小程序中,常见的需求是存储用户数据,例如用户的登录状态、偏好设置等。

1. 存储用户登录状态
代码语言:javascript
复制
// 用户登录后存储登录状态
wx.setStorageSync('isLoggedIn', true);
2. 获取用户登录状态
代码语言:javascript
复制
const isLoggedIn = wx.getStorageSync('isLoggedIn');
if (isLoggedIn) {
  console.log('用户已登录');
} else {
  console.log('用户未登录');
}
二、存储应用设置

可以使用本地缓存存储一些应用的设置,例如主题、语言等。

1. 存储应用设置
代码语言:javascript
复制
wx.setStorageSync('theme', 'dark');
2. 获取应用设置
代码语言:javascript
复制
const theme = wx.getStorageSync('theme');
console.log('当前主题:', theme); // 输出: 当前主题: dark

数据同步与异步的选择

一、同步存储和获取

wx.setStorageSyncwx.getStorageSync 是同步方法,操作完成后立即返回结果。适用于简单的、少量的数据存储和获取。

二、异步存储和获取

wx.setStoragewx.getStorage 是异步方法,通过回调函数获取操作结果。适用于需要处理较大数据量或者在存储和获取数据时不希望阻塞其他操作的场景。

案例实践

三、实现一个简单的备忘录应用
1. 页面布局

创建一个备忘录页面,包含输入框和列表展示。

wxml 文件:

代码语言:javascript
复制
<view class="container">
  <input placeholder="请输入备忘录" bindinput="handleInput" value="{{memo}}" />
  <button bindtap="addMemo">添加</button>
  <view class="memo-list">
    <block wx:for="{{memos}}" wx:key="index">
      <view class="memo-item">
        <text>{{item}}</text>
        <button bindtap="removeMemo" data-index="{{index}}">删除</button>
      </view>
    </block>
  </view>
</view>

wxss 文件:

代码语言:javascript
复制
.container {
  padding: 20rpx;
}
.memo-list {
  margin-top: 20rpx;
}
.memo-item {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10rpx;
  padding: 10rpx;
  border: 1px solid #ccc;
}
2. 处理输入和添加备忘录

js 文件:

代码语言:javascript
复制
Page({
  data: {
    memo: '',
    memos: []
  },
  onLoad() {
    this.loadMemos();
  },
  handleInput(e) {
    this.setData({ memo: e.detail.value });
  },
  addMemo() {
    if (!this.data.memo) return;
    const memos = this.data.memos.concat(this.data.memo);
    this.setData({ memos, memo: '' });
    wx.setStorageSync('memos', memos);
  },
  removeMemo(e) {
    const index = e.currentTarget.dataset.index;
    const memos = this.data.memos.filter((_, i) => i !== index);
    this.setData({ memos });
    wx.setStorageSync('memos', memos);
  },
  loadMemos() {
    const memos = wx.getStorageSync('memos') || [];
    this.setData({ memos });
  }
});

小测试 🧪

  • 实现一个包含输入、添加和删除功能的备忘录应用,并使用本地缓存存储数据。
  • 尝试在应用中存储一些用户设置,并在页面加载时读取这些设置。

今日学习总结 📚

概念

详细内容

本地缓存

使用 wx.setStorageSync、wx.getStorageSync 存储和获取数据

数据存储最佳实践

存储用户数据、应用设置

同步与异步存储

选择同步或异步存储和获取数据的方法

结语

通过今天的学习,你应该掌握了如何在小程序中进行数据存储与本地缓存。这些技术可以帮助你在用户设备上存储数据,提高小程序的性能和用户体验。明天我们将探讨小程序的网络请求与数据交互。如果你有任何疑问,欢迎关注并留言在我的公众号猫头虎技术团队。📩

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第14天:小程序的数据存储与本地缓存 📦
    • 自我介绍
      • 本地缓存的使用
        • 一、使用 wx.setStorageSync 和 wx.getStorageSync
        • 二、使用 wx.setStorage 和 wx.getStorage
      • 数据存储的最佳实践
        • 一、存储用户数据
        • 二、存储应用设置
      • 数据同步与异步的选择
        • 一、同步存储和获取
        • 二、异步存储和获取
      • 案例实践
        • 三、实现一个简单的备忘录应用
      • 小测试 🧪
        • 今日学习总结 📚
          • 结语
          相关产品与服务
          云开发 CloudBase
          云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档