Taro 网络请求与数据加载
在开发 Taro 跨端小程序时,网络请求是获取远程数据的主要方式。无论你是从服务器获取文章列表,还是从接口读取用户信息,这一过程都离不开对接口的调用和数据的加载展示。本文将带你一步步掌握 Taro 中如何发起网络请求、如何加载数据以及如何处理请求结果。
使用 Taro.request 发起请求
Taro 提供了一个跨平台的请求 API —— Taro.request
,它对小程序、H5 、React Native 等环境做了统一封装,返回的是一个 Promise,非常适合配合 async/await
使用。
示例:GET 请求
import Taro from '@tarojs/taro'
Taro.request({
url: 'https://api.example.com/posts',
method: 'GET'
}).then(res => {
console.log(res.data)
}).catch(error => {
console.error('请求失败', error)
})
使用 async/await
你也可以使用更清晰的 async/await
方式:
const fetchPosts = async () => {
try {
const res = await Taro.request({
url: 'https://api.example.com/posts',
method: 'GET'
})
console.log(res.data)
} catch (error) {
Taro.showToast({
title: '加载失败',
icon: 'none'
})
}
}
在页面中加载数据
在 Taro 中,你可以在页面组件的生命周期中发起网络请求,比如在 useEffect
中(如果你使用的是 React 风格),或者在 onLoad
生命周期钩子中(使用类组件时)。
示例:函数组件加载数据
import { useEffect, useState } from 'react'
import Taro from '@tarojs/taro'
const PostList = () => {
const [posts, setPosts] = useState([])
useEffect(() => {
const loadData = async () => {
const res = await Taro.request({
url: 'https://api.example.com/posts'
})
setPosts(res.data)
}
loadData()
}, [])
return (
<View>
{posts.map(post => (
<View key={post.id}>{post.title}</View>
))}
</View>
)
}