@yunu-lab/rpc-react
v2.1.19
Published
🚀 **React + RPC = ❤️**
Maintainers
Readme
@yunu-lab/rpc-react
🚀 React + RPC = ❤️
"Когда React встречает RPC, происходит магия" - сказал один мудрый разработчик в 3 часа ночи
🎭 Что это такое?
Это библиотека, которая заставляет React и RPC работать вместе, как кофе и понедельник - не идеально, но работает!
🎪 Зачем это нужно?
- Потому что можно 🎯
- Потому что TypeScript любит это ⚡
- Потому что Redux был одинок 🛡️
- Потому что связи между данными - это как связи между людьми 🔗
- Потому что асинхронность - это жизнь 📡
🎨 Философия
"Если что-то можно сделать через хуки - это нужно сделать через хуки"
Мы верим в:
- 🎯 Реактивность (когда данные меняются, UI тоже)
- ⚡ TypeScript (потому что
any- это грех) - 🛡️ Валидацию (потому что доверять данным нельзя)
- 🔗 Связи (потому что все в этом мире связано)
- 📡 Асинхронность (потому что жизнь не ждет)
🎪 Установка
npm install @yunu-lab/rpc-react @reduxjs/toolkit react-redux🎭 Быстрый старт
// Просто скопируй это и удивись
import { RpcProvider } from '@yunu-lab/rpc-react';
const App = () => (
<RpcProvider repository={repository}>
<YourAmazingApp />
</RpcProvider>
);🎪 Что внутри?
- 🎯 Реактивное состояние - данные меняются, UI обновляется
- ⚡ TypeScript - потому что мы любим типы
- 🛡️ Валидация - Zod говорит "нет" плохим данным
- 🔗 Связи - как в социальных сетях, но для данных
- 📡 Асинхронность - потому что интернет медленный
🎪 Хуки (потому что React)
useRpc- основной хук (какuseState, но круче)createRpcHooks- создает хуки для твоих типовuseUserRelated- для связанных данныхuseUserListener- для прослушивания измененийuseUserFullRelatedData- для полных данных (с рекурсией!)
🎪 Примеры
// Получаем пользователей
const { users } = useUser();
// Получаем связанные продукты
const userProducts = useUserRelated(1, "product");
// Слушаем изменения
const unsubscribe = useUserListener((events) => {
console.log("Что-то изменилось!", events);
});🎪 Типизация
// Определяем типы (потому что TypeScript)
type YourTypes = {
user: User;
product: Product;
};
// Используем (и радуемся автокомплиту)
const users = useRpcData<YourTypes, 'user'>('user');🎪 Лицензия
MIT - делай что хочешь, но не вини нас 😄
Создано с ❤️ командой Yunu
P.S. Если что-то не работает - это не баг, это фича!
