Memulai
Pasang @uikode/tide dan render data real-time dalam tiga langkah.
Pasang
bash
npm install @uikode/tide solid-js Tide punya satu peer dependency: solid-js. Total ukuran 2.8KB gzipped (core + skeleton).
1. Bungkus aplikasimu
Bungkus root dengan TideProvider. WebSocket opsional — hilangkan ws untuk stale-while-revalidate berbasis HTTP saja.
tsx
import { TideProvider } from '@uikode/tide'
function Root() {
return (
<TideProvider ws={{ url: 'wss://your-server/ws' }}>
<App />
</TideProvider>
)
} 2. Ambil data di komponen
createTide menerima objek opsi. Gunakan shorthand url (v1.1) atau beri fetcher kustom. Tambahkan ws atau wsPath untuk push real-time.
tsx
import { createTide } from '@uikode/tide'
// v1.1 — url shorthand (recommended)
const todos = createTide({
key: 'todos',
url: '/api/todos',
wsPath: 'data.todos', // auto-extract from WS message
})
// v1.0 — custom fetcher (still supported)
const todos = createTide({
key: 'todos',
fetcher: ({ signal }) =>
fetch('/api/todos', { signal }).then((r) => r.json()),
ws: (msg) => (msg.type === 'todos' ? msg.data : null),
}) 3. Render secara reaktif
data adalah accessor SolidJS — panggil di JSX. Saat kunjungan ulang, render instan dari sessionStorage (0ms), lalu refresh di belakang.
tsx
<Show when={!todos.loading()} fallback={<Skeleton />}>
<For each={todos.data()}>{(t) => <Todo item={t} />}</For>
</Show> Selesai. Transport WebSocket, caching, reconnect, dan skeleton semua ditangani otomatis.