uniapp数据缓存和发起网络请求

news2024/9/17 9:09:33

数据缓存


uni.onStorageSync同步的方式将数据存储到本地缓存


<template>
	<button @click="onStorageSync()">存储数据</button>
</template>

<script setup>
	const onStorageSync = () => {
		// 存储数据
		uni.setStorageSync('username', '张三');
		uni.setStorageSync('age', 25);
	};
</script>

uni.getStorageSync从本地存储中同步读取数据​​​​​​


<template>
	<button @click="onStorageSync()">存储数据</button>
	{{username}}
	{{age}}
	</template>

<script setup>
	import {
		ref
	} from 'vue';
	var username = ref('');
	var age = ref('');
	const onStorageSync = () => {
		// 存储数据
		uni.setStorageSync('username', '张三');
		uni.setStorageSync('age', 25);
		//获取数据并存储
		username.value = uni.getStorageSync('username');
		age.value = uni.getStorageSync('age');
	};
</script>

uni.removeStorageSync用于从本地存储中移除指定 key 的数据的方法。它可以帮助你在不需要某个数据项时将其从本地存储中删除。


<template>
	<!-- 存储数据按钮,点击后将调用onStorageSync()方法 -->
	<button @click="onStorageSync()">存储数据</button>
	<!-- 清除指定key存储数据的按钮,点击后将调用onRemoverStorageSunc()方法 -->
	<button @click="onRemoverStorageSunc()">清除指定key存储数据数据</button>
	<!-- 显示从存储中获取的用户名 -->
	{{ username }}
	<!-- 显示从存储中获取的年龄 -->
	{{ age }}
</template>

<script setup>
// 初始化用户名和年龄的响应式变量,初始值为空字符串
var username = ref('');
var age = ref('');
/**
 * 存储数据到本地存储,并更新响应式变量的值
 * 使用uni.setStorageSync方法存储数据,如果存储成功,通过uni.getStorageSync方法获取数据并更新变量值
 */
const onStorageSync = () => {
	// 存储数据
	uni.setStorageSync('username', '张三');
	uni.setStorageSync('age', 25);
	//获取数据并存储
	username.value = uni.getStorageSync('username');
	age.value = uni.getStorageSync('age');
};
/**
 * 移除本地存储中指定key的数据,并更新响应式变量的值
 * 使用uni.removeStorageSync方法移除存储的数据,然后尝试重新获取并更新变量值
 */
const onRemoverStorageSunc = () => {
	uni.removeStorageSync('username');
	uni.removeStorageSync('age');
	// 尝试重新获取数据并更新,此时数据已被移除,预期值为null或默认值
	username.value = uni.getStorageSync('username');
	age.value = uni.getStorageSync('age');
}
</script>

发起网络请求


uni.request 是 Uni-app 框架中用于发起 HTTP 网络请求的一个 API。它允许开发者向服务器发送请求以获取数据或发送数据。下面是一些基本的用法和作用:

        


作用

  • 数据获取:从远程服务器获取数据,例如获取 JSON 格式的数据。
  • 数据提交:向服务器发送数据,比如提交表单数据或上传文件。
  • 服务交互:与第三方服务进行通信,如身份验证、支付接口调用等。

基本用法

uni.request 接受一个对象作为参数,其中包含请求的相关配置项,比如 URL、请求方法、请求头、请求体等,并且可以指定回调函数来处理请求的结果。

参数说明
  • url (String):请求的地址。
  • data (Object/String):请求的参数,如果是 GET 请求,这些参数会被拼接在 URL 后面;如果是 POST 请求,则作为请求体发送。
  • method (String):请求的方法,默认为 GET,可选值有 GETPOSTPUTDELETEHEADOPTIONS 等。
  • timeout (Number):请求超时时间,单位毫秒,默认值为 60000。
  • complete (Function):接口调用结束的回调函数(请求结束时执行,无论成功或失败)。
  • success (Function):接口调用成功的回调函数。
  • fail (Function):接口调用失败的回调函数

<template>
</template>

<script setup>
// 使用uni.request发起一个GET请求到指定的URL
uni.request({
	url: 'https://jsonplaceholder.typicode.com/todos/1', // 请求的URL
	data: {
		key: 'value' // 请求携带的数据
	},
	method: 'GET', // 请求方法
	header: {
		'Content-Type': 'application/json', // 设置内容类型为JSON
		'Custom-Header': 'hello' // 自定义请求头
	},
	success: function(res) {
		console.log(res.data); // 处理返回的数据
	},
	fail: function(err) {
		console.error('请求失败:', err); // 在请求失败时输出错误信息
	}
})
</script>
<template>
  <div>
    <h1>请求结果</h1>
    <pre>{{ requestResult }}</pre>
  </div>
</template>

<script setup>
import { ref } from 'vue';

// 初始化状态
const requestResult = ref('');

// 使用uni.request发起GET请求
uni.request({
  url: 'https://jsonplaceholder.typicode.com/todos/1', // 请求的URL
  data: {
    key: 'value' // 请求的参数
  },
  method: 'GET', // 请求方法
  header: {
    'Content-Type': 'application/json', // 设置请求头的Content-Type
    'Custom-Header': 'hello' // 自定义请求头
  },
  success: function (res) {
    // 请求成功时的回调函数
    requestResult.value = JSON.stringify(res.data, null, 2); // 将数据转换为字符串并存储
  },
  fail: function (err) {
    // 请求失败时的回调函数
    console.error('请求失败:', err); // 输出错误信息到控制台
    requestResult.value = '请求失败'; // 设置状态为请求失败
  }
});
</script>



 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2117148.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【验收交付体系文档】系统验收计划书,软件交付验收成套文档体系

软件系统验收计划书是确保新开发的软件系统符合预期要求并稳定运行的关键步骤。本计划书概述了验收过程的主要环节&#xff0c;包括系统功能的详细测试、性能评估、用户接受度测试以及文档完整性的核查。验收团队将依据项目需求规格说明书和合同要求&#xff0c;对系统进行全面…

axure判断

在auxre中我们也可以实现判断的功能&#xff0c;当目标等于什么内容时则执行下方的功能。 一、判断输入框中是否有值 画布添加一个输入框、一个文本标签删除其中内容&#xff0c;添加一个按钮&#xff0c;输入框命名为【文本显示】文本标签命名为【提示】 给按钮新增一个交互…

多个索引干扰导致索引失效如何解决

视频讲解&#xff1a;索引干扰导致索引失效如何解决_哔哩哔哩_bilibili 1 场景说明 表tb_order有订单状态order_status和创建时间create_time的索引。 现在业务的需求是&#xff0c;查询半年内&#xff0c;已支付订单状态的总数。SQL语句如下&#xff1a; SELECTCOUNT(1) FRO…

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元&#xff0c;传统键盘输入方式正悄然进化。以往&#xff0c;面对实体键盘&#xff0c;我们常需目光游离于屏幕与键盘之间&#xff0c;以确认指尖下的精准位置。而屏幕键盘虽直观可见&#xff0c;却常因占据屏幕空间&#xff0c;迫使我们在操作与视野间做出…

Windows系统下安装JMeter

目录 一、官网下载JMeter 二、运行 JMeter 一、官网下载JMeter JMeter 官网安装地址 Apache JMeter - Apache JMeter™https://jmeter.apache.org/ 下载Windows版本 下载完成后 解压 二、运行 JMeter 打开bin目录 下面两个文件其中一个均可运行双击jmeter.bat 或者使用…

支持黑神话悟空的超长视频理解,Qwen2-VL多模态大模型分享

Qwen2-VL是由阿里巴巴达摩院开发并开源的第二代视觉与语言多模态人工智能模型。 Qwen2-VL结合了视觉理解和自然语言处理的能力&#xff0c;使得它能够处理和理解图像、视频以及文本数据。 Qwen2-VL支持多种语言&#xff0c;包括但不限于英语、中文、大多数欧洲语言、日语、韩…

【分支-快速排序】

【分支-快速排序】 1. 颜色分类1.1 题目来源1.2 题目描述1.3 题目解析 2. 排序数组2.1 题目来源2.2 题目描述2.3 题目解析 3. 数组中的第K个最大元素3.1 题目来源3.2 题目描述3.3 题目解析 4. 库存管理 III4.1 题目来源4.2 题目描述4 .3 题目解析 1. 颜色分类 1.1 题目来源 7…

JS基础学习笔记

1.引入方式 内部脚本 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> <…

为什么要使用大模型RAG一体机

使用大模型RAG&#xff08;Retrieval-Augmented Generation&#xff09;一体机&#xff0c;如AntSKPro AI 离线知识库一体机&#xff0c;有以下几个原因和优势&#xff1a; 提高效率&#xff1a;RAG模型结合了检索&#xff08;Retrieval&#xff09;和生成&#xff08;Generati…

鸿蒙(API 12 Beta6版)GPU加速引擎服务【自适应VRS】

XEngine Kit提供自适应VRS功能&#xff0c;其通过合理分配画面的计算资源&#xff0c;视觉无损降低渲染频次&#xff0c;使不同的渲染图像使用不同的渲染速率&#xff0c;能够有效提高渲染性能。 接口说明 以下接口为自适应VRS设置接口&#xff0c;如要使用更丰富的设置和查询…

windows10-VMware17-Ubuntu-22.04-海康2K摄像头兼容问题,求解(已解决)

文章目录 1.webrtc camera测试2.ffmpeg 测试3.Ubuntu 自带相机4.解决办法 环境&#xff1a;windows10系统下&#xff0c;VMware的Ubuntu-22.04系统 问题&#xff1a;摄像头出现兼容问题&#xff0c;本来是想开发测试的&#xff0c;Ubuntu方便些。买了海康2K的USB摄像头&#xf…

人机交互与现代战争

人机交互技术在现代战争中的应用越来越广泛&#xff0c;它可以帮助士兵更好地完成任务&#xff0c;提高作战效能&#xff0c;减少人员伤亡。人机交互与认知在军事应用方面的进展有很多&#xff0c;比如&#xff1a; &#xff08;1&#xff09;虚拟现实和增强现实技术&#xff1…

PAT甲级-1085 Perfect Sequence

题目 题目大意 在一组数中找到一个完美数列&#xff0c;满足M < mp&#xff0c;M是该数列的最大值&#xff0c;m是最小值&#xff0c;p是题目给定的一个常数。 思路 模拟或者二分法。二分法可用upper_bound()函数实现。 知识点 upper_bound() 和 lower_bound() 函数在&…

C高级编程 第十六天(树 二叉树)

1.树 1.1结构特点 非线性结构&#xff0c;有一个直接前驱&#xff0c;但可能有多个直接后继有递归性&#xff0c;树中还有树可以为空&#xff0c;即节点个数为零 1.2相关术语 根&#xff1a;即根结点&#xff0c;没有前驱叶子&#xff1a;即终端结点&#xff0c;没有后继森…

02-java实习工作一个多月-经历分享

一、描述一下最近不写博客的原因 离我发java实习的工作的第一天的博客已经过去了一个多月了&#xff0c;本来还没入职的情况是打算每天工作都要写一份博客来记录一下的&#xff08;最坏的情况也是每周至少总结一下的&#xff09;&#xff0c;其实这个第一天的博客都是在公司快…

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext)&#xff0c;和uboot一样&#xff0c;都是从汇编阶段开始的&#xff0c;因为对于kernel而言&#xff0c;还没进行栈的维护&#xff0c;所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。 内核起始部分代码被解压代码调用&#xff0c…

深入手撕链表

链表 分类概念单链表增尾插头插插入 删尾删头删删除 查完整实现带头不带头 双向链表初始化增尾插头插插入 删查完整代码 数组 分类 #mermaid-svg-qKD178fTiiaYeKjl {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qK…

Java 入门指南:JVM(Java虚拟机)—— Java 内存运行时的数据区域

前言 对于 Java 程序员来说&#xff0c;在虚拟机自动内存管理机制下&#xff0c;不再需要像 C/C程序开发程序员这样为每一个 new 操作去写对应的 delete/free 操作&#xff0c;不容易出现内存泄漏和内存溢出问题。 由于程序员把内存控制权利交给 Java 虚拟机&#xff0c;一旦…

【CSS in Depth 2 精译_025】4.3 弹性布局的方向

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09; 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位&#xff08;已完结&#xff09; 2.1 相对…

NISP 一级 | 2.3 身份认证

关注这个证书的其他相关笔记&#xff1a;NISP 一级 —— 考证笔记合集-CSDN博客 0x01&#xff1a;身份认证基本方法 身份认证是用户登录系统或网站面对的第一道安全防线&#xff0c;如输入账号口令来登录。身份认证是在网络中确认操作者身份的过程。身份认证一般依据以下三种情…