@app-studio/react-request v0.1.3
React Request
✨ Features
- 🎣 React Hooks - Modern React hooks API for data fetching
- 🚀 TypeScript Support - Full TypeScript support with type safety
- 💾 Built-in Caching - Automatic request caching with configurable TTL
- 🔄 Loading States - Automatic loading and progress tracking
- ❌ Error Handling - Comprehensive error handling with retry logic
- 📝 Form Integration - Seamless Formik integration for forms
- 🌐 Network Awareness - Online/offline status handling
- 🔧 Configurable - Highly customizable with global and per-request options
- 🎯 Debouncing - Built-in request debouncing (300ms)
- 📊 Progress Tracking - Upload/download progress monitoring
📦 Install
npm install @app-studio/react-request🔨 Usage
Basic Example
import React from 'react';
import { useRequest, request } from '@app-studio/react-request';
// Define your API function
const fetchUser = (id) =>
request({
url: `https://api.example.com/users/${id}`,
method: 'GET'
});
// Use in component
function UserProfile({ userId }) {
const { data, loading, error, run } = useRequest(fetchUser);
React.useEffect(() => {
run(userId);
}, [userId]);
if (loading) return <div>Loading...</div>;
if (error) return <div>Error: {error.message}</div>;
if (!data) return null;
return (
<div>
<h1>{data.name}</h1>
<p>{data.email}</p>
</div>
);
}With Provider (Recommended)
import React from 'react';
import { RequestProvider } from '@app-studio/react-request';
function App() {
return (
<RequestProvider
cached={true}
debug={true}
defaults={{
onError: (error) => console.error('Request failed:', error),
onSuccess: (data) => console.log('Request succeeded:', data)
}}
>
<UserProfile userId="123" />
</RequestProvider>
);
}Form Integration
import { Formik, Form, Field } from 'formik';
function CreateUserForm() {
const { formikConfig, loading, error } = useRequest(
(userData) => request({
url: '/api/users',
method: 'POST',
params: userData
}),
{
method: 'POST',
onSuccess: (data) => alert('User created successfully!')
}
);
return (
<Formik initialValues={{ name: '', email: '' }} {...formikConfig}>
<Form>
<Field name="name" placeholder="Name" />
<Field name="email" placeholder="Email" />
<button type="submit" disabled={loading}>
{loading ? 'Creating...' : 'Create User'}
</button>
{error && <div>Error: {error.message}</div>}
</Form>
</Formik>
);
}TypeScript
react-request is written in TypeScript with complete definitions.
📚 Documentation
- 📖 Full Documentation - Comprehensive guide with examples
- ⚡ Quick Reference - Quick reference for common patterns
- 🔗 API Reference - Detailed API documentation
- 💡 Examples - Real-world usage examples
- 🛠️ Best Practices - Recommended patterns
🔗 Links
- Change Log
- Versioning Release Note
- Issues - Bug reports and feature requests
- Discussions - Community discussions
🤝 Contributing 
We welcome all contributions! Here's how you can help:
- 🐛 Report bugs - Create an issue
- 💡 Suggest features - Start a discussion
- 📝 Improve docs - Help us make the documentation better
- 🔧 Submit PRs - Fix bugs or add new features
Development Setup
git clone https://github.com/rize-network/react-request.git
cd react-request
npm install
npm startRunning Tests
npm testPlease read our contributing guide for more details.
❤️ Sponsors and Backers

Author
SteedMonteiro, steed@rize.network
License
React Request is available under the MIT license. See the LICENSE file for more info.
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
11 months ago
9 months ago
10 months ago
8 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago