启动网站建设的请示聊城手机网站建设价格

news/2025/10/5 0:46:54/文章来源:
启动网站建设的请示,聊城手机网站建设价格,wordpress用户筛选,北京网络推广套餐在移动应用中#xff0c;网络请求 是实现与服务器进行数据交互的核心功能。React Native 基于 JavaScript 的特性#xff0c;提供了多种方式进行网络请求#xff0c;包括使用 fetch API、axios 库以及 WebSocket 等。本章节将详细介绍如何在 React Native 中进行网络请求网络请求 是实现与服务器进行数据交互的核心功能。React Native 基于 JavaScript 的特性提供了多种方式进行网络请求包括使用 fetch API、axios 库以及 WebSocket 等。本章节将详细介绍如何在 React Native 中进行网络请求包括基本用法、错误处理、请求拦截以及使用第三方库进行更复杂的网络操作。 1.1 网络请求概述 在 React Native 应用中网络请求主要用于以下场景 数据获取 从服务器获取数据如用户信息、文章列表等。数据提交 向服务器提交数据如用户注册、登录、发布文章等。实时通信 通过 WebSocket 实现实时数据推送如聊天应用、实时通知等。 React Native 提供了多种方式进行网络请求 fetch API 内置于 JavaScript 的网络请求 API简单易用。axios 库 第三方网络请求库功能更强大支持拦截器、取消请求等。WebSocket 用于实现实时双向通信。 本章节将重点介绍 fetch API 和 axios 库的使用。 1.2 使用 fetch API fetch 是 JavaScript 提供的一个用于进行网络请求的 APIReact Native 对其进行了支持。 1.2.1 基本用法 语法 fetch(url, {method: GET, // 请求方法GET, POST, PUT, DELETE, etc.headers: {Content-Type: application/json,// 其他头部信息},body: JSON.stringify(data), // 请求体 }).then((response) response.json()).then((json) {// 处理响应数据}).catch((error) {// 处理错误});示例GET 请求 import React, { useEffect, useState } from react; import { View, Text, StyleSheet } from react-native;const DataFetcher () {const [data, setData] useState(null);useEffect(() {fetch(https://jsonplaceholder.typicode.com/posts/1).then((response) response.json()).then((json) setData(json)).catch((error) console.error(error));}, []);return (View style{styles.container}{data ? (Text style{styles.text}{JSON.stringify(data)}/Text) : (TextLoading.../Text)}/View); };const styles StyleSheet.create({container: {flex: 1,justifyContent: center,alignItems: center,},text: {fontSize: 16,}, });export default DataFetcher;示例POST 请求 import React, { useState } from react; import { View, Text, Button, StyleSheet } from react-native;const DataPoster () {const [response, setResponse] useState(null);const postData () {const data { title: foo, body: bar, userId: 1 };fetch(https://jsonplaceholder.typicode.com/posts, {method: POST,headers: {Content-Type: application/json,},body: JSON.stringify(data),}).then((response) response.json()).then((json) setResponse(json)).catch((error) console.error(error));};return (View style{styles.container}Button titlePost Data onPress{postData} /{response Text style{styles.text}{JSON.stringify(response)}/Text}/View); };const styles StyleSheet.create({container: {flex: 1,justifyContent: center,alignItems: center,},text: {fontSize: 16,marginTop: 10,}, });export default DataPoster;1.2.2 错误处理 在网络请求中错误处理是非常重要的。可以通过 catch 捕获错误并进行相应的处理。 示例 import React, { useEffect, useState } from react; import { View, Text, StyleSheet } from react-native;const ErrorHandlingExample () {const [error, setError] useState(null);useEffect(() {fetch(https://invalid-url.com/data).then((response) response.json()).then((json) {// 处理数据}).catch((error) {console.error(error);setError(网络请求失败);});}, []);return (View style{styles.container}{error Text style{styles.text}{error}/Text}/View); };const styles StyleSheet.create({container: {flex: 1,justifyContent: center,alignItems: center,},text: {fontSize: 16,color: red,}, });export default ErrorHandlingExample;1.2.3 请求拦截 fetch 本身不支持请求拦截但可以通过封装 fetch 函数来实现。 示例 // api.js import { Platform } from react-native;const api {get: (url, headers {}) {return fetch(url, {method: GET,headers: {Content-Type: application/json,...headers,},});},post: (url, data, headers {}) {return fetch(url, {method: POST,headers: {Content-Type: application/json,...headers,},body: JSON.stringify(data),});},// 其他方法put, delete, etc. };// 添加请求拦截器 api.interceptors {request: {use: (callback) {const originalGet api.get;api.get (url, headers) {return callback(originalGet(url, headers));};const originalPost api.post;api.post (url, data, headers) {return callback(originalPost(url, data, headers));};// 其他方法},}, };export default api;// App.js import React from react; import { View, Text, StyleSheet } from react-native; import api from ./api;api.interceptors.request.use((originalFetch) (...args) {// 添加请求头const [url, options] args;options.headers {...options.headers,Authorization: Bearer token,};return originalFetch(url, options); });const App () {const fetchData async () {try {const response await api.get(https://jsonplaceholder.typicode.com/posts/1);const json await response.json();console.log(json);} catch (error) {console.error(error);}};return (View style{styles.container}Text style{styles.text}Fetch Data/TextButton titleGet Data onPress{fetchData} //View); };const styles StyleSheet.create({container: {flex: 1,justifyContent: center,alignItems: center,},text: {fontSize: 18,}, });export default App;1.3 使用 axios 库 axios 是一个第三方网络请求库功能更强大支持拦截器、取消请求、请求超时等。相比 fetchaxios 提供了更简洁的 API 和更丰富的功能。 1.3.1 安装 axios npm install axios1.3.2 基本用法 以下是一个使用 axios 发送 POST 请求的示例 // components/PostData.js import React, { useState } from react; import { View, Text, Button, StyleSheet, ActivityIndicator } from react-native; import axios from axios;const PostData () {const [response, setResponse] useState(null);const [loading, setLoading] useState(false);const handlePost async () {setLoading(true);try {const data { title: foo, body: bar, userId: 1 };const res await axios.post(https://jsonplaceholder.typicode.com/posts, data);setResponse(res.data);} catch (error) {console.error(error);alert(请求失败);} finally {setLoading(false);}};return (View style{styles.container}Button titlePost Data onPress{handlePost} /{loading ActivityIndicator sizelarge color#0000ff /}{response (View style{styles.responseContainer}Text style{styles.responseText}Response:/TextText{JSON.stringify(response)}/Text/View)}/View); };const styles StyleSheet.create({container: {flex: 1,justifyContent: center,alignItems: center,padding: 20,},responseContainer: {marginTop: 20,padding: 10,backgroundColor: #f0f0f0,borderRadius: 5,},responseText: {fontSize: 16,fontWeight: bold,marginBottom: 5,}, });export default PostData;解释 发送 POST 请求 使用 axios.post 方法发送 POST 请求第一个参数是请求的 URL第二个参数是请求体数据。axios.post 返回一个 Promise可以通过 then 和 catch 处理响应和错误。 错误处理 使用 try...catch 捕获请求错误并进行相应处理如显示错误提示。 加载状态 使用 loading 状态控制 ActivityIndicator 的显示提示用户请求正在进行中。 显示响应数据 将响应数据存储在 response 状态中并在界面上显示。 1.3.3 拦截器 axios 提供了请求拦截器和响应拦截器可以在请求发送前和响应返回后进行统一处理。 示例添加请求头和响应处理 // api.js import axios from axios;// 创建 axios 实例 const api axios.create({baseURL: https://jsonplaceholder.typicode.com, });// 添加请求拦截器 api.interceptors.request.use((config) {// 在发送请求之前做些什么config.headers[Authorization] Bearer token;return config;},(error) {// 对请求错误做些什么return Promise.reject(error);} );// 添加响应拦截器 api.interceptors.response.use((response) {// 对响应数据做点什么return response;},(error) {// 对响应错误做点什么return Promise.reject(error);} );export default api;// components/PostData.js import React, { useState } from react; import { View, Text, Button, StyleSheet, ActivityIndicator } from react-native; import api from ../api;const PostData () {const [response, setResponse] useState(null);const [loading, setLoading] useState(false);const handlePost async () {setLoading(true);try {const data { title: foo, body: bar, userId: 1 };const res await api.post(/posts, data);setResponse(res.data);} catch (error) {console.error(error);alert(请求失败);} finally {setLoading(false);}};return (View style{styles.container}Button titlePost Data onPress{handlePost} /{loading ActivityIndicator sizelarge color#0000ff /}{response (View style{styles.responseContainer}Text style{styles.responseText}Response:/TextText{JSON.stringify(response)}/Text/View)}/View); };const styles StyleSheet.create({container: {flex: 1,justifyContent: center,alignItems: center,padding: 20,},responseContainer: {marginTop: 20,padding: 10,backgroundColor: #f0f0f0,borderRadius: 5,},responseText: {fontSize: 16,fontWeight: bold,marginBottom: 5,}, });export default PostData;解释 创建 axios 实例 使用 axios.create 创建一个 axios 实例并设置 baseURL。 请求拦截器 在请求发送前添加 Authorization 请求头。 响应拦截器 在响应返回后进行统一处理例如处理错误码、格式化数据等。 使用 axios 实例 在组件中使用 api.post 发送请求无需重复添加请求头。 1.3.4 取消请求 axios 支持取消请求可以通过 CancelToken 实现。 示例 // components/CancelablePost.js import React, { useState } from react; import { View, Text, Button, StyleSheet, ActivityIndicator } from react-native; import axios from axios;const CancelablePost () {const [response, setResponse] useState(null);const [loading, setLoading] useState(false);let cancelToken;const handlePost async () {setLoading(true);cancelToken axios.CancelToken.source();try {const data { title: foo, body: bar, userId: 1 };const res await axios.post(https://jsonplaceholder.typicode.com/posts, data, {cancelToken: cancelToken.token,});setResponse(res.data);} catch (error) {if (axios.isCancel(error)) {console.log(请求取消);} else {console.error(error);alert(请求失败);}} finally {setLoading(false);}};const handleCancel () {if (cancelToken) {cancelToken.cancel(用户取消请求);}};return (View style{styles.container}Button titlePost Data onPress{handlePost} /Button titleCancel Request onPress{handleCancel} /{loading ActivityIndicator sizelarge color#0000ff /}{response (View style{styles.responseContainer}Text style{styles.responseText}Response:/TextText{JSON.stringify(response)}/Text/View)}/View); };const styles StyleSheet.create({container: {flex: 1,justifyContent: center,alignItems: center,padding: 20,},responseContainer: {marginTop: 20,padding: 10,backgroundColor: #f0f0f0,borderRadius: 5,},responseText: {fontSize: 16,fontWeight: bold,marginBottom: 5,}, });export default CancelablePost;解释 取消请求 使用 CancelToken.source() 创建一个取消令牌。在发送请求时将取消令牌传递给 axios.post。通过调用 cancelToken.cancel(用户取消请求) 可以取消请求。 作者简介 前腾讯电子签的前端负责人现 whentimes tech CTO专注于前端技术的大咖一枚一路走来从小屏到大屏从 Web 到移动什么前端难题都见过。热衷于用技术打磨产品带领团队把复杂的事情做到极简体验做到极致。喜欢探索新技术也爱分享一些实战经验帮助大家少走弯路 温馨提示可搜老码小张公号联系导师

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

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

相关文章

10.4 闲话

.本来要睡觉了的,然后酒店响起了火警,睡不着了。 今天打的比赛都过于神人。CF 被 E 卡了不知道多长时间,模拟赛放了个二项式反演板子很不尊重人(写三个小时乱搞斩获 \(6\) 分更不尊重人了),ucup 只写了签到,ABC…

高端网站网站建设制作要学什么

JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。 java环境变量配置: 如果是Window…

神秘专题训练之老题补做

2024 在我的深刻思考下,我决定先开xtq的杂题选讲,我能归来吗? 杂题选讲 by xtq unknown给定一棵带权树和一个 \(k\),选 \(k\) 个点标记,使得对于每个点(可以不是标记点)到最近的标记点的距离的最大值最小。\(n …

php网站开发工程师任职要求沪佳装修贵吗

欧几里德算法是计算两个数最大公约数的传统算法,他无论从理论还是从效率上都是很好的。但是他有一个致命的缺陷,这个缺陷只有在大素数时才会显现出来。 考虑现在的硬件平台,一般整数最多也就是64位,对于这样的整数,计…

学校网站怎样建设云南省城市建设培训中心网站

# 背景知识 大模型和分布式训练对数据的吞吐量以及并行度都有很高的要求,NCCL就是在这个背景下诞生的。 如果你是一个只会写写Python,调用PyTorch和Horovod的算法萌新,可能对于分布式底层的东西不太了解,在下岗热潮中被主管逼着…

网站建设一般用哪种语言开发wordpress 旅游网站

CNCF 全称Cloud Native Computing Foundation(云原生计算基金会),成立于 2015 年7月21日(于美国波特兰OSCON 2015上宣布),其最初的口号是坚持和整合开源技术来让编排容器作为微服务架构的一部分&#xff0…

广州手机网站定制如何网站栏目页排名

首先查看当前字符集 locale 看看有没有zh_CN.utf8 locale -a |grep CN 没有就安装 yum install -y langpacks-zh_CN 安装后再次确认配置 vi /etc/locale.conf LANG"zh_CN.UTF-8" 修改后重启即可

用windows搭建手机网站更换wordpress字体

世界上有三种钱非常奥妙,你花得越多就赚得越多。这是学校老师不会教的事,让我们看看: 第一种钱:投资自己,自我成长,学习的钱一定要花! 如果我们把世界首富比尔.盖茨从美国抓到非洲&#xff0c…

202510做题记录

202510 做题记录加粗斜体表示思考时被卡了的部分。 打 \(*\) 的表示做过的重新想(做)一遍。 打 \(^?\) 的表示看了题解。 打 ~ 的表示还没做 / 还没写上来。 特别的,\(^!\) 和 \(*^?\) 都表示做过一遍还是不会 �…

python 基础问题汇总

一、基础语法与变量:“概念混淆导致代码写错” 这是入门初期最常踩的坑,核心是对Python基础语法规则(如变量类型、运算符、字符串)的理解不透彻,导致“代码看起来对,实际跑不通”。变量类型混淆,计算/操作报错典…

网站会员方案上海企业一户式查询

1. 题目 给定仅包含来自0-9的数字的二叉树,每个根到叶路径可以表示数字。 举个例子:root-to-leaf路径1-> 2-> 3,它代表数字123,找到所有根到叶的数的总和 样例1 输入: {1,2,3} 输出: 25 解释:1/ \2 3 路径 1->2 表示…

球球大作战

本质上反映了面向对象编程逻辑、游戏开发核心流程和Python语法细节三个层面的关键点。 一、面向对象编程(类与对象)的核心问题类的结构设计疑问:Ball类的__init__方法是否必须?move、draw等方法为何需要screen参数…

建设部职业资格注册中心网站做pc网站

主要整理了N多年前&#xff08;2010年&#xff09;学习C的时候开始总结的知识点&#xff0c;好长时间不写C代码了&#xff0c;现在LLM量化和推理需要重新学习C编程&#xff0c;看来出来混迟早要还的。 1.const_cast <new_type> (expression)[1] 解析&#xff1a;const_c…

慈溪建设集团网站wordpress的主题在哪个文件夹

在C语言中&#xff0c;*p1和p1是两个不同的表达式&#xff0c;有以下区别&#xff1a; *p1&#xff1a;这是一个后缀递增运算符的组合。首先&#xff0c;*p1会取出指针p1所指向的值&#xff0c;并且对p1进行递增操作。简而言之&#xff0c;这个表达式会先取出p1指向的值&#x…

关于建设网站的书本内江规划建设教育培训中心网站

企业邮箱是专门为企业提供的电子邮件服务&#xff0c;安全性和专业性更高。在开始使用企业邮箱之前&#xff0c;很多人会有一些问题&#xff0c;比如企业邮箱需要认证吗、如何开通企业邮箱&#xff0c;以及哪款企业邮箱好。 1、企业邮箱在使用前需要认证吗&#xff1f; 答案是肯…

网站域名注册查询未备案的网站可以百度推广吗

简介 JSON Server 是一个非常实用的工具,可以让你快速搭建一个模拟 REST API。它可以基于一个 JSON 文件快速创建一个全功能的假 REST API,非常适合前端开发时做原型或 mock 数据。本文将详细介绍 JSON Server 的安装和使用方法。 安装 JSON Server 是一个 Node.js 模块,可以…

简单企业网站源码阳江网络问政

Android 8.1 OTG U盘无法显示在系统文件管理的修改_mtk 屏蔽当贝市场u盘弹框-CSDN博客 Android 8.1 客制化OTG U盘的挂载路径名称_安卓8.1 u盘挂载目录-CSDN博客