电商小程序08调用缓存

简介: 电商小程序08调用缓存



小程序的登录功能里,如果只是将登录信息保存到全局变量中,存在的问题是如果小程序重新打开,用户的登录状态就丢失了。为了解决这个问题,我们需要用到微搭的缓存的功能,本篇就介绍一下如何加载缓存。

1 将信息存入缓存中

切换到我们的登录页面,打开我们的登录方法

在全局变量赋值的后边,增加一个缓存存入的动作

$w.utils.setStorage({ key: "user", data: $w.app.dataset.state.user });

api的调用要参考官方文档

key相当于给我们存入的信息起了一个名字,后续在获取的时候就可以根据这个名字来取。而data相当于我们需要存入的数据,这里我们存入了全局变量

完整的代码

export default async function ({ event, data }) {
  const username = $w.input1.value
  const password = $w.input2.value
  const agree = $w.radio1.value
  console.log('agree', agree, typeof (agree))
  if (agree == '1') {
    const user = await $w.cloud.callDataSource({
      dataSourceName: "zcyhxx_7diyeuv",
      methodName: "wedaGetItemV2",
      params: {
        // 筛选内容,筛选内容推荐使用编辑器数据筛选器生成
        filter: {
          where: {
            $and: [
              {
                zh: {
                  $eq: username, // 获取单条时,推荐传入_id数据标识进行操作
                },
              },
              {
                mm: {
                  $eq: password, // 获取单条时,推荐传入_id数据标识进行操作
                },
              },
            ],
          },
        },
        select: {
          $master: true, // 常见的配置,返回主表
        },
      },
    });
    console.log('user', user)
    if (user._id) {
      $w.app.dataset.state.user = user
      $w.utils.setStorage({ key: "user", data: $w.app.dataset.state.user });
      //wx.setStorageSync('user', $w.app.dataset.state.user)
      $w.utils.redirectTo({
        pageId: "index", // 页面 Id
        packageName: "", // 主应用为空或不填,子模块填写 子包目录,查找位置 子包编辑器 --- 页面 --- 子包目录
        params: { key: "value" },
      });
    } else {
      $w.utils.showToast({
        title: "用户名或者密码错误",
        icon: "error",
        duration: 2000, // 2秒
      });
    }
  } else {
    $w.utils.showToast({
      title: "请勾选用户协议",
      icon: "error",
      duration: 2000, // 2秒
    });
  }
}

2 获取登录信息

在登录时候已经将用户信息存入了缓存中,在首页我们就需要从缓存中获取。在代码区,点击新建,创建一个自定义方法,命名为Load

输入如下代码

export default async function ({ event, data }) {
  try {
    const user = await $w.utils.getStorage({ key: "user" }); 
    console.log('user', user)
    if (user && Object.keys(user.data).length > 0) {
      $w.app.dataset.state.user = user.data
    }
    console.log(user);
  } catch (err) {
    console.error(err);
  }
}

首先调用了微搭获取缓存的方法,官方文档如下

通过key可以获取到我们存入的对象,这里要注意的是,返回的对象要继续获取data属性才是我们真正需要的内容

获取到之后我们就判断对象是否有值,如果有值我就赋值给全局变量。

然后选中页面组件,设置加载方法,调用我们的自定义方法

3 退出登录

有登录就需要有退出,退出的逻辑就是删除我们的缓存,在我的页面,我们添加一个按钮用来实现退出的功能

在代码区,添加一个自定义方法,起名字叫logout,写入如下代码

export default async function ({ event, data }) {
  $w.utils.removeStorage({ key: "user" });
  $w.app.dataset.state.user = {}
  $w.utils.redirectTo({
    pageId: "index", // 页面 Id
    packageName: "", // 主应用为空或不填,子模块填写 子包目录,查找位置 子包编辑器 --- 页面 --- 子包目录
    params: { key: "value" },
  });
}

这里先调用了删除缓存的api,官方文档如下

通过key来删除缓存,我们在登录的时候存入的key是user,这里也需要通过这个key删除缓存。删除完缓存之后将全局变量赋值为空对象,保证跳转回首页的时候显示的是登录按钮

4 发布预览

因为这几个api其实是对微信小程序的api的封装,我们需要发布一下,在手机上看到具体的效果

真机体验的时候,记得把小程序销毁,然后再次打开,看看具体的效果。如果只是关掉小程序,他还是在后台运行,你再点击的时候只是重新显示了。

总结

本篇我们介绍了微搭缓存的使用,存入用户信息只是一个方面的应用,在后续实现购物车的功能时,还需要借助缓存的能力,敬请期待。

相关文章
|
4月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的电商个性化推荐系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的电商个性化推荐系统附带文章和源代码部署视频讲解等
30 0
|
3月前
|
小程序 视频直播 UED
电商直播小程序系统开发:打造“直播+电商+社交”闭环
电商直播小程序成为商家与消费者互动的关键,通过微信提供的实时视频工具,实现流畅购物体验。系统功能包括直播预览、主播管理、红包互动、用户管理及闭环购物。它强化品牌效应,利用私域流量,简化流程并转化会员。开发涉及需求分析、设计规划、功能开发、测试优化及上线维护。企业需关注用户体验,以保持竞争力。寻求开发合作可联系相关人员。
|
2月前
|
小程序 前端开发 JavaScript
【电商新机遇】支付宝小程序如何助你打造爆款电商解决方案?揭秘背后的技术奥秘!
【8月更文挑战第27天】本文详细介绍如何利用支付宝小程序构建电商应用,覆盖从项目初始化、页面设计、功能开发到数据分析的全流程。首先,需注册开发者账号并安装相关工具;随后创建项目,并按示例配置基本页面结构;接着设计商品列表等界面布局;再实现商品展示等功能;最后运用支付宝提供的工具进行数据分析,以优化用户体验及营销策略。跟随本教程,您将能打造出一款完整的电商小程序。
59 1
|
3月前
|
开发框架 小程序 前端开发
私域电商小程序系统开发:提供可行的电商解决方案
私域电商小程序助广州企业融合线上线下业务,利用智能手机普及与网络技术,提供个性化购物体验。开发涉及需求分析、UI设计、前后端开发及测试上线。技术要点包括微信小程序框架、前端后端技术及安全优化。市场竞争需关注用户需求、特色服务、技术创新与合作推广。通过差异化策略抓住市场机遇。
|
3月前
|
小程序
商家店铺电商小程序模板源码
商家店铺电商小程序模板源码
35 5
|
3月前
|
小程序 安全 UED
百果园社区电商小程序开发:打造私域精准营销发展趋势
百果园借助社区电商小程序转型,拓展线上渠道,增强品牌形象,降低运营成本,适应市场变化。小程序提供实时购物、社群互动、商家入驻及优惠活动,强调用户体验、功能丰富性和安全性,成为品牌与消费者连接的新桥梁。
|
4月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的电商城镇互助平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的电商城镇互助平台附带文章和源代码部署视频讲解等
22 0
|
4月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的电商数据分析附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的电商数据分析附带文章和源代码部署视频讲解等
32 0
|
4月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的个性化推荐电商平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的个性化推荐电商平台附带文章和源代码部署视频讲解等
22 0
|
4月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的电商平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的电商平台附带文章和源代码部署视频讲解等
14 0
下一篇
无影云桌面