Ir al contenido

Instalación

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>