SvelteKit Remote Functions: भाग १
SvelteKit डेटा हाताळण्यासाठी एक नवीन पद्धत तपासून पाहत आहे. याला Remote Functions म्हणतात. हे फीचर क्लायंट आणि सर्व्हरला एकमेकांशी सहज संवाद साधण्याची परवानगी देते.
Remote Functions म्हणजे काय?
Remote Functions तुम्हाला तुमच्या SvelteKit ॲपच्या कोणत्याही भागातून सर्व्हर-साइड लॉजिक कॉल करण्याची परवानगी देतात. जरी तुम्ही त्यांना क्लायंटवरून कॉल करत असलात, तरी कोड सर्व्हरवर चालतो. याचा अर्थ असा की तुम्ही डेटाबेस किंवा खाजगी एन्व्हायरनमेंट व्हेरिएबल्स (environment variables) सुरक्षितपणे वापरू शकता.
ते कसे सक्षम (enable) करावे
तुम्हाला तुमच्या svelte.config.js फाईलमध्ये experimental mode सुरू करावा लागेल:
const config = {
kit: {
experimental: {
remoteFunctions: true
}
},
compilerOptions: {
experimental: {
async: true
}
}
};
export default config;
Queries सोबत काम करणे
तुम्ही .remote.js किंवा .remote.ts एक्स्टेंशन असलेल्या फाईल्स वापरून remote functions तयार करू शकता. याचे चार प्रकार आहेत:
- query (डेटा मिळवण्यासाठी वापरले जाते)
- form
- command
- prerender
query फंक्शन HTTP GET रिक्वेस्टप्रमाणे काम करते. तुम्ही ते तुमच्या Svelte components मध्ये इम्पोर्ट करू शकता आणि डेटा मिळवण्यासाठी await वापरू शकता.
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;
});
तुमच्या component मध्ये, तुम्ही ते असे वापरू शकता:
{#each await getPosts() as { title, slug }}
<li>{title}</li>
{/each}
State मॅनेज करणे
query फंक्शन तुमच्या UI ला मॅनेज करण्यासाठी तीन उपयुक्त प्रॉपर्टीज प्रदान करते:
- loading: डेटा मिळवत असताना True असते.
- error: जर रिक्वेस्ट फेल झाली तर True असते.
- current: यशस्वी डेटा साठवून ठेवते.
Smart Features
Validation: तुमच्या query ला पास केलेले arguments व्हॅलिडेट करण्यासाठी तुम्ही Zod किंवा Valibot सारख्या लायब्ररीज वापरू शकता. यामुळे तुमचा सर्व्हर सुरक्षित राहतो.
Data Handling: SvelteKit डेटा पाठवण्यासाठी devalue वापरते. हे Date आणि Map सारख्या कॉम्प्लेक्स टाइप्सना सपोर्ट करते, जे स्टँडर्ड JSON सहज करू शकत नाही.
Deduplication: जर तुम्ही एकाच arguments सह एकाच query ला अनेक वेळा कॉल केले, तर SvelteKit ती फक्त एकदाच रन करते. यामुळे डेटाबेसवरील अतिरिक्त लोड टाळता येतो.
Refreshing: सर्व्हरवरून त्वरित लेटेस्ट डेटा मिळवण्यासाठी तुम्ही query वर
.refresh()कॉल करू शकता.
टीप: ही फीचर्स प्रायोगिक (experimental) आहेत. भविष्यातील अपडेट्समध्ये सिंटॅक्स बदलू शकतो.
स्रोत: https://dev.to/nnutnonn/sveltekit-kaarthamngaankab-remote-function-part-1-4hg4
