Esta guía cubre cómo instalar y configurar los paquetes de SolidJS de Effectify en tu proyecto.
Usa tu gestor favorito. Los ejemplos usan npm, pero puedes usar yarn, pnpm o bun.
Integración de Effect con TanStack Query para SolidJS:
npm install @effectify/solid-query
Peer Dependencies:
npm install @tanstack/solid-query effect solid-js
npm create solid@latest mi-app
cd mi-app
npm install @effectify/solid-query @tanstack/solid-query effect
Configura TanStack Query en src/index.tsx:
import { render } from "solid-js/web"
import { QueryClient, QueryClientProvider } from "@tanstack/solid-query"
import App from "./App"
const queryClient = new QueryClient()
render(
() => (
<QueryClientProvider client={queryClient}>
<App />
</QueryClientProvider>
),
document.getElementById("root")!,
)
npm create solid@latest mi-app -- --template solid-start
cd mi-app
npm install @effectify/solid-query @tanstack/solid-query effect
Crea src/root.tsx:
// @refresh reload
import { Suspense } from "solid-js"
import { Body, ErrorBoundary, FileRoutes, Head, Html, Meta, Routes, Scripts, Title } from "solid-start"
import { QueryClient, QueryClientProvider } from "@tanstack/solid-query"
const queryClient = new QueryClient()
export default function Root() {
return (
<Html lang="en">
<Head>
<Title>SolidStart - Con Effectify</Title>
<Meta charset="utf-8" />
<Meta name="viewport" content="width=device-width, initial-scale=1" />
</Head>
<Body>
<Suspense>
<ErrorBoundary>
<QueryClientProvider client={queryClient}>
<Routes>
<FileRoutes />
</Routes>
</QueryClientProvider>
</ErrorBoundary>
</Suspense>
<Scripts />
</Body>
</Html>
)
}
npx astro add solid
npm install @effectify/solid-query @tanstack/solid-query effect
Crea un proveedor:
// src/components/QueryProvider.tsx
import { QueryClient, QueryClientProvider } from "@tanstack/solid-query"
import type { ParentComponent } from "solid-js"
const queryClient = new QueryClient()
export const QueryProvider: ParentComponent = (props) => {
return <QueryClientProvider client={queryClient}>{props.children}</QueryClientProvider>
}
Úsalo en Astro:
---
// src/pages/index.astro
---
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Astro + SolidJS + Effectify</title>
</head>
<body>
<QueryProvider client:load>
<App client:load />
</QueryProvider>
</body>
</html>