在React中通过AJAX加载初始列表,是指在组件挂载时(如componentDidMount
或useEffect
钩子中),通过异步请求(如fetch
、axios
等)从服务器获取数据,并将数据渲染为列表。这是现代前端应用的常见模式,用于实现动态数据加载。
fetch
实现AJAX请求import React, { useState, useEffect } from 'react';
function ListComponent() {
const [items, setItems] = useState([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
useEffect(() => {
fetch('https://api.example.com/items') // 替换为实际API地址
.then(response => {
if (!response.ok) throw new Error('Network response failed');
return response.json();
})
.then(data => {
setItems(data);
setLoading(false);
})
.catch(error => {
setError(error.message);
setLoading(false);
});
}, []); // 空依赖数组表示仅在组件挂载时执行
if (loading) return <div>Loading...</div>;
if (error) return <div>Error: {error}</div>;
return (
<ul>
{items.map(item => (
<li key={item.id}>{item.name}</li>
))}
</ul>
);
}
export default ListComponent;
axios
(更推荐)import axios from 'axios';
import React, { useState, useEffect } from 'react';
function ListComponent() {
const [items, setItems] = useState([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
useEffect(() => {
axios.get('https://api.example.com/items')
.then(response => {
setItems(response.data);
setLoading(false);
})
.catch(error => {
setError(error.message);
setLoading(false);
});
}, []);
// 渲染逻辑同上
}
Access-Control-Allow-Origin
)。proxy
配置)。useEffect
未触发。axios
的取消令牌或AbortController
:axios
的取消令牌或AbortController
:react-window
)处理大数据量。没有搜到相关的文章