SvelteKit Remote Functions: Sehemu ya 1

SvelteKit inajaribu njia mpya ya kushughulikia data. Inaitwa Remote Functions. Kipengele hiki kinaruhusu mteja (client) na seva (server) kuzungumza kwa urahisi.

Remote Functions ni nini?

Remote Functions zinakuwezesha kuita mantiki ya upande wa seva (server-side logic) kutoka sehemu yoyote ya programu yako ya SvelteKit. Ingawa unaziita kutoka upande wa mteja, kodi inafanya kazi kwenye seva. Hii ina maana unaweza kufikia kanzidata (databases) au vigezo vya mazingira (environment variables) vya siri kwa usalama.

Jinsi ya kuwasha

Lazima uwashe hali ya majaribio (experimental mode) kwenye faili yako ya svelte.config.js:

const config = {
    kit: {
        experimental: {
            remoteFunctions: true
        }
    },
    compilerOptions: {
        experimental: {
            async: true
        }
    }
};

export default config;

Kufanya kazi na Queries

Unaweza kuunda remote functions kwa kutumia faili zenye kirejeshi (extension) cha .remote.js au .remote.ts. Kuna aina nne:

  • query (inatumika kwa ajili ya kupata data)
  • form
  • command
  • prerender

Kazi ya query inafanya kazi kama ombi la HTTP GET. Unaweza kuimport kwenye vipengele (components) vyako vya Svelte na kutumia await kupata data yako.

Mfano wa remote query:

import { query } from '$app/server';
import * as db from '$lib/server/database';

export const getPosts = query(async () => {
    const posts = await db.sql`SELECT title, slug FROM post`;
    return posts;
});

Kwenye kipengele chako, unaitumia hivi:

{#each await getPosts() as { title, slug }}
    <li>{title}</li>
{/each}

Kusimamia Hali (State)

Kazi ya query inatoa sifa (properties) tatu muhimu za kusimamia UI yako:

  • loading: Kweli (True) wakati wa kupata data.
  • error: Kweli (True) ikiwa ombi linafeli.
  • current: Inashikilia data iliyopatikana kwa mafanikio.

Vipengele vya Akili (Smart Features)

  1. Validation: Unaweza kutumia maktaba (libraries) kama Zod au Valibot ili kuhakiki hoja (arguments) zinazotumwa kwenye query yako. Hii huifanya seva yako kuwa salama.

  2. Data Handling: SvelteKit inatumia devalue kutuma data. Hii inasaidia aina tata (complex types) kama Date na Map, ambazo JSON ya kawaida haiwezi kufanya kwa urahisi.

  3. Deduplication: Ukita kuitia query ile ile mara nyingi kwa kutumia hoja zilezile, SvelteKit inaiendesha mara moja tu. Hii inazuia mzigo wa ziada kwenye kanzidata.

  4. Refreshing: Unaweza kuita .refresh() kwenye query ili kupata data ya hivi punde kutoka kwenye seva mara moja.

Kumbuka: Vipengele hivi ni vya majaribio. Sintaksi (syntax) inaweza kubadilika katika sasisho za baadaye.

Chanzo: https://dev.to/nnutnonn/sveltekit-kaarthamngaankab-remote-function-part-1-4hg4