微信小程序开发数据缓存基础知识辨析以及运用实例

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、微信数据缓存是什么?

在实际开发中,在用到一个数据时,我们需要调用api接口去得到,然后渲染在页面中,但是对于一些数据,是经常需要使用的,如果每次使用时都需要调用api接口,会十分麻烦。数据缓存就解决了这个问题,我们可以在初次调用某api得到数据的同时将数据缓存,那么在之后的使用过程中,可以直接通过缓存区得到,这样就提高了程序的效率。举个例子。在第二次登录微信时,我们还没有进行登录操作,但是发现我们的头像数据已经渲染到页面中,这就是因为再一次登录时,图片的地址是从缓存区中得到的缘故,在本文中也会对此实例进行操作,微信小程序中的数据缓存可类比js中的localstorage

二、数据缓存api使用方法和辨析

1.存入数据

wx.setStorageSync(string key, any data)

 wx.setStorageSync("name","张三")

wx.setStorage(Object object)

wx.setStorage({data: "李四",key: 'name1',})   //异步api

当执行了这段代码之后就会发现在调试区storage中出现以下数据

2.读数据

wx.getStorageSync(string key)

var b=wx.getStorageSync('name')console.log(b);

Object wx.getStorageInfoSync()

  var a=wx.getStorage({key: 'name1',})a.then(e=>{console.log(e.data);})

wx.getStorageInfoSync()得到的是一个promise对象,因此使用then方法通过e.data得到缓存区数据
当执行了这段代码之后就会发现在调试区console中出现以下数据

3.删除数据

wx.removeStorage(Object object)

 wx.removeStorage({key: 'name1',})

wx.removeStorageSync(‘name’)

wx.removeStorageSync('name')

当执行了这段代码之后就会发现在调试区storage中出现以下数据会被删除


4.删除全部数据(这里不再细说)

wx.clearStorage()
wx.clearStorageSync()

三、api辨析

可以看到上面的多可api可分为两大类,一种是带sync的一种是不带的,其实带sync的是异步api,而不带的是同步api,这也是带sync的这部分api得到的是一个promise对象,这里以wx.setStorageSync() ,wx.setStorage() 做以示例

1.wx.setStorage()

代码如下(示例):在wxml中写入了两个按钮,点击第一个触发函数tongbu,用来演示同步情况

tongbu:function(){wx.setStorageSync("name","张五") //同步apivar a=wx.getStorageSync('name')console.log(a);
}

最开始name对应的数据是张三,在这里我们修改为张五,然后读取数据,发现console为
说明是单线程顺序执行,在修改了name后才执行了console.log

2.wx.setStorage()

代码如下(示例):点击第一个触发函数yibu,用来演示异步情况

yibu:function(){wx.setStorage({data: "李柳",key: 'name1',})var a=wx.getStorageSync('name1')console.log(a);}
})

最开始name对应的数据是李四,在这里我们修改为李柳,然后读取数据,发现console为

代码console.log在修改数据之后,但是发现在修改数据过后,a没有改变,说明这里的wx.setStorage()是异步api,在执行时,无论这里有无完成执行,都会执行cinsole.log


加载微信个人信息案例

index.wxss

/**index.wxss**/
.userinfo {display: flex;flex-direction: column;align-items: center;
}.userinfo-avatar {width: 128rpx;height: 128rpx;margin: 20rpx;border-radius: 50%;
}.userinfo-nickname {color: #aaa;
}.usermotto {margin-top: 200px;
}image{margin-top: 20px;margin-bottom: 20px;width: 50px;height: 50px;
}

index.wxml

<!--index.wxml-->
<view class="container"><button bindtap="getmessage">获取用户信息</button>
<view>头像</view>
<view><image src="{{pictureurl}}"></image></view>
<view><text>用户名为 {{name}}</text></view>
</view>

index.js

// pages/index/index.js
Page({/*** 页面的初始数据*/data: {name:'张三',pictureurl:'../index/4.png'},getmessage:function(){var a=new Promise((resolve,reject)=>{wx.getUserInfo({success: function(res) {resolve(res)}})})//获取用户数据,前提是已经取得了访问权限a.then(res=>{this.setData({name:res.userInfo.nickName,pictureurl:res.userInfo.avatarUrl})//将访问得到的数据渲染到页面中wx.setStorage({data: res.userInfo.nickName,//name中存入用户名信息key: 'name',})wx.setStorage({data: res.userInfo.avatarUrl,//pictureurl中存入用户头像的url地址key: 'pictureurl',})})//同时将渲染的数据缓存},/*** 生命周期函数--监听页面加载,加载页面,触发onLoad。此时就可以将数据渲染*/onLoad: function (options) {var name=wx.getStorageSync('name')//从缓存中读取用户名信息var url=wx.getStorageSync('pictureurl')//从缓存中读取头像urlconsole.log(name);console.log(url);this.setData({name:name,pictureurl:url})}
})

渲染后的结果示例,第一次点击获取用户数据按钮后当刷新或者关闭后重启程序都会是此页面

微信小程序开发数据缓存基础知识辨析以及运用实例相关推荐

  1. 微信小程序的数据缓存

    当我们做 微信小程序开发的时候,我们经常要与后台打交道,做一些数据缓存的工作 用到的方法为 wx.setStorage wx.getStorage wx.clearStorage 第一步:存储数据 首 ...

  2. 【微信小程序开发小白零基础入门】微信小程序框架【建议收藏】

    微信小程序框架 文章目录 微信小程序框架 一.逻辑层 1.注册程序 1.App()函数 2.onPageNotFound()函数 3.getApp()函数 2.注册页面 1.初始数据 2.生命周期回调 ...

  3. 微信小程序(一)基础知识

    最近想大概的了解一下微信小程序的基础部分知识,这是一份微信小程序基础总结! 什么是小程序 ? 如何全面具体的学习? 注册与新建小程序 认识开发工具 目录结构与代码构成 JSON 配置文件 WXML 模 ...

  4. 微信小程序开发的入门基础知识点

    一.小程序介绍_安装_使用 介绍小程序: 2017年1月9日,张小龙,腾讯. 支付宝现在也推出了小程序 无需安装,无需卸载,触手可及,用完即走 小程序基于微信,微信基于腾讯,腾讯有庞大的用户基数. 小 ...

  5. 微信小游戏开发入门(一)-基础知识

    技术简介 微信小游戏是在微信小程序的基础上添加了游戏库 API.小游戏只能运行在小程序环境中,所以小游戏既不是原生游戏,也不完全等同于 HTML5 游戏.但实际上小游戏面向的就是 HTML5 游戏开发 ...

  6. 【微信小程序开发小白零基础入门】微信小程序入门【建议收藏】

    微信小程序入门 文章目录 微信小程序入门 前言 一.小程序的概述 1.小程序简介 2.小程序诞生 3.小程序功能 4.小程序创建步骤 二.小程序的准备工作 1.注册开发者账号 2.小程序信息完善 3. ...

  7. 微信小程序API 数据缓存

    每个微信小程序都可以有自己的本地缓存,可以通过wx.setStorage(wx.setStorageSync).wx.getStorage(wx.getStorageSync).wx.clearSto ...

  8. 【微信小程序开发小白零基础入门】第一个入门级小程序【建议收藏】

    文章目录 一.第一个入门级小程序 1.新建项目 2.真机预览 3.代码上传 4.小程序版本 二.小程序目录结构 1.项目配置文件 2.主体文件 3.页面文件 4.其他文件 三.开发者工具功能介绍 1. ...

  9. 【微信小程序开发】缓存Storage的存入与获取

    缓存Storage的存入 调用 //第一个参数是存入缓存的名称,第二个参数是存入缓存的值 wx.setStorageSync('user',res.data) //本句的意思就是把res.data里的 ...

最新文章

  1. 用机器学习还原《隐秘的角落》那些被修改的台词
  2. Centos 6.5系统安装配置图解教程
  3. 福州大学计算机专业录取位次,盘点福州大学历年最低录取分数线以及最低位次!给考生做参考...
  4. ORACLE数据库,数据量大,转移数据到备份表语句
  5. fir.im Weekly - 让 iOS 应用更加安全
  6. TheBrain v11.0.84中文版
  7. 线程池的使用(线程池重点解析)
  8. 设计模式(二十四)解释器模式
  9. ios realm 文件_iOS开发中使用Realm数据库
  10. Ubuntu server下“初始化月份字符串出错”的解决
  11. sql server 常用语句
  12. 风控人应知的坏账准备金知识
  13. webpack安装_初识webpack
  14. JavaSE JDK搭建
  15. 数据仓库与数据挖掘的OLAP技术----韩家炜教授的《数据挖掘概念与技术》学习笔记
  16. 海天老师 资深TTT/思维训练专家
  17. PDFbox-PDF解析(坐标定位,分页读取)
  18. JS校验VIN码,生成虚拟VIN码
  19. 前端面试那些事【dt/dd、audio、onerror、标签、类、ID选择器、伪类选择器......
  20. pyinstaller打包exe文件的详细步骤及过程中遇到的问题

热门文章

  1. maven打jar包时报update interval of XXX has elapsed or updates are force
  2. 16种设计思想 - Design for failure
  3. 【软考-软件设计师精华知识点笔记】第八章 算法分析设计
  4. bzoj 5285: [Hnoi2018]寻宝游戏
  5. stack around xxx is corrupted
  6. Beetl的配置的最基本元素
  7. python复杂网络点图可视化_数据分析:R与Python怎么选?
  8. 102条简短深刻的回答,看完人生豁然开朗
  9. 最新全国机场名(持续更新2017-12-27)
  10. 关于APP抓包,Mac就不配拥有姓名吗?