SvelteKit Remote Functions: ಭಾಗ 1
SvelteKit ಡೇಟಾವನ್ನು ನಿರ್ವಹಿಸಲು ಹೊಸ ವಿಧಾನವನ್ನು ಪರೀಕ್ಷಿಸುತ್ತಿದೆ. ಇದನ್ನು Remote Functions ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಈ ವೈಶಿಷ್ಟ್ಯವು ಕ್ಲೈಂಟ್ ಮತ್ತು ಸರ್ವರ್ ಪರಸ್ಪರ ಸುಲಭವಾಗಿ ಸಂವಹನ ನಡೆಸಲು ಅನುಮತಿಸುತ್ತದೆ.
Remote Functions ಎಂದರೇನು?
Remote Functions ನಿಮ್ಮ SvelteKit ಅಪ್ಲಿಕೇಶನ್ನ ಯಾವುದೇ ಭಾಗದಿಂದ ಸರ್ವರ್-ಸೈಡ್ ಲಾಜಿಕ್ ಅನ್ನು ಕರೆಯಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ನೀವು ಅವುಗಳನ್ನು ಕ್ಲೈಂಟ್ನಿಂದ ಕರೆದರೂ ಸಹ, ಕೋಡ್ ಸರ್ವರ್ನಲ್ಲಿ ಚಲಿಸುತ್ತದೆ. ಇದರರ್ಥ ನೀವು ಡೇಟಾಬೇಸ್ಗಳು ಅಥವಾ ಖಾಸಗಿ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ಗಳನ್ನು (environment variables) ಸುರಕ್ಷಿತವಾಗಿ ಪ್ರವೇಶಿಸಬಹುದು.
ಇದನ್ನು ಹೇಗೆ ಸಕ್ರಿಯಗೊಳಿಸುವುದು
ನೀವು ನಿಮ್ಮ 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 ಕಾಂಪೊನೆಂಟ್ಗಳಿಗೆ ಇಂಪೋರ್ಟ್ ಮಾಡಬಹುದು ಮತ್ತು ಡೇಟಾವನ್ನು ಪಡೆಯಲು 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;
});
ನಿಮ್ಮ ಕಾಂಪೊನೆಂಟ್ನಲ್ಲಿ, ನೀವು ಇದನ್ನು ಈ ರೀತಿ ಬಳಸಬಹುದು:
{#each await getPosts() as { title, slug }}
<li>{title}</li>
{/each}
State ನಿರ್ವಹಣೆ
query ಫಂಕ್ಷನ್ ನಿಮ್ಮ UI ಅನ್ನು ನಿರ್ವಹಿಸಲು ಮೂರು ಉಪಯುಕ್ತ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ:
- loading: ಡೇಟಾವನ್ನು ಪಡೆಯುವಾಗ True ಆಗಿರುತ್ತದೆ.
- error: ರಿಕ್ವೆಸ್ಟ್ ವಿಫಲವಾದರೆ True ಆಗಿರುತ್ತದೆ.
- current: ಯಶಸ್ವಿ ಡೇಟಾವನ್ನು ಹೊಂದಿರುತ್ತದೆ.
ಸ್ಮಾರ್ಟ್ ವೈಶಿಷ್ಟ್ಯಗಳು
Validation: ನಿಮ್ಮ query ಗೆ ಕಳುಹಿಸುವ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ವ್ಯಾಲಿಡೇಟ್ ಮಾಡಲು ನೀವು Zod ಅಥವಾ Valibot ನಂತಹ ಲೈಬ್ರರಿಗಳನ್ನು ಬಳಸಬಹುದು. ಇದು ನಿಮ್ಮ ಸರ್ವರ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿಡುತ್ತದೆ.
Data Handling: ಡೇಟಾವನ್ನು ಕಳುಹಿಸಲು SvelteKit
devalueಅನ್ನು ಬಳಸುತ್ತದೆ. ಇದು Date ಮತ್ತು Map ನಂತಹ ಸಂಕೀರ್ಣ ಪ್ರಕಾರಗಳನ್ನು (complex types) ಬೆಂಬಲಿಸುತ್ತದೆ, ಇದನ್ನು ಸಾಮಾನ್ಯ JSON ಸುಲಭವಾಗಿ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.Deduplication: ನೀವು ಒಂದೇ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳೊಂದಿಗೆ ಒಂದೇ query ಅನ್ನು ಹಲವು ಬಾರಿ ಕರೆದರೆ, SvelteKit ಅದನ್ನು ಕೇವಲ ಒಂದು ಬಾರಿ ಮಾತ್ರ ಚಲಿಸುತ್ತದೆ. ಇದು ಡೇಟಾಬೇಸ್ ಮೇಲಿನ ಹೆಚ್ಚಿನ ಹೊರೆಯನ್ನು ತಡೆಯುತ್ತದೆ.
Refreshing: ಸರ್ವರ್ನಿಂದ ತಕ್ಷಣವೇ ಇತ್ತೀಚಿನ ಡೇಟಾವನ್ನು ಪಡೆಯಲು ನೀವು query ಮೇಲೆ
.refresh()ಅನ್ನು ಕರೆಯಬಹುದು.
ಗಮನಿಸಿ: ಈ ವೈಶಿಷ್ಟ್ಯಗಳು ಎಕ್ಸ್ಪೆರಿಮೆಂಟಲ್ ಆಗಿವೆ. ಭವಿಷ್ಯದ ಅಪ್ಡೇಟ್ಗಳಲ್ಲಿ ಸಿಂಟ್ಯಾಕ್ಸ್ (syntax) ಬದಲಾಗಬಹುದು.
ಮೂಲ (Source): https://dev.to/nnutnonn/sveltekit-kaarthamngaankab-remote-function-part-1-4hg4
