Replies: 1 comment
-
For example, Let me show translating the data fetching fundamentals topic. Data Fetching Fundamentalsახალი,გამარტივებული მიდგომა წარმოადგინა Overviewრაზე ვისაუბრებთ?
Fetching Data on the Serverნექსტის რჩევაა, რომ სადაც შეგვიძლია დატის დაფეჩვა მაქსიმალურად სერვერის კომპონენტებში გვქონდეს. რადგან ეს ყველაფერი სერვერის მხარეს ხდება:
Parallel and Sequential Data Fetchingარსებობს ორი ტიპის
Automatic fetch() Request Dedupingთუ ერთიდა იგივე დატა მოგვაქვს ბევრ კომპონენტში, რომლების ერთ ქვეხეში არიან, Next.js ავტომატურად იქეშავს
Static and Dynamic Data Fetchesორი სახის
By default, ნექსტი ავტომატურად აკეთებს სტატიკურ წამოღებას დატის. ბილდის დროს წამოიღებს ამ დატა, დაიქეშავს და გამოიყენებს ყველა რექვესტზე.
Caching Dataქეშირება არიც პროცესი, როდესაც დატას ვინახავთ რამე ლოკაციაზე, მაგალითად Next.js Cache არის ე.წ Next.js -ის import { useState, useEffect } from 'react';
function MyComponent() {
const [data, setData] = useState(null);
useEffect(() => {
async function fetchData() {
const response = await fetch('/api/data', {
cacheKey: 'my-component-data',
cacheTime: 60000, // 1 minute
});
const json = await response.json();
setData(json);
}
fetchData();
}, []);
if (!data) {
return <div>Loading...</div>;
}
return (
<div>
<h1>{data.title}</h1>
<p>{data.description}</p>
</div>
);
}
export default MyComponent; Revalidating Dataრევალიდაცია არის პროცესი, როცა უნდა გავასუფთავოთ ქეში და ხელახლა წამოოვიღოთ ბოლო დატა. ეს გამოიყენება, როცა ხშირად იცვლება დატა და გვინდა დავრწმუნდეთ რომ მომხმარებელი ბოლო ვერსიას უყურებს.
fetch('https://...', { next: { revalidate: 60 } });
import useSWR from 'swr';
function MyComponent() {
const { data, revalidate } = useSWR('/api/data', { refreshInterval: 0 });
function handleClick() {
revalidate();
}
if (!data) {
return <div>Loading...</div>;
}
return (
<div>
<h1>{data.title}</h1>
<p>{data.description}</p>
<button onClick={handleClick}>Refresh</button>
</div>
);
}
export default MyComponent; Streaming and Suspense
ორივე ტექნიკა ერთად გამოიყენება უზერის ექსპერიენსის ოპტიმიზაციისთვის. მაგალითად, ფეიჯმა შეიძლება ჯერ გამოიყენოს import { useState, useEffect, Suspense } from 'react'
import { stream } from 'next/stream'
function StreamedComponent({ data }) {
return (
<div>
<h1>{data.title}</h1>
<p>{data.content}</p>
</div>
)
}
function FallbackComponent() {
return <div>Loading...</div>
}
function MyComponent() {
const [data, setData] = useState(null)
useEffect(() => {
const controller = new AbortController()
stream('/api/data', {
signal: controller.signal,
onData: (data) => setData(data),
})
return () => {
controller.abort()
}
}, [])
if (!data) {
return <FallbackComponent />
}
return (
<Suspense fallback={<FallbackComponent />}>
<StreamedComponent data={data} />
</Suspense>
)
}
export default MyComponent
მეტისთვის იხ. სტატია [[Streaming and Suspense]] |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Goals
The primary goals of this proposal are:
Non-Goals
No response
Background
Georgian-speaking developers often encounter language barriers when accessing technical documentation. Translating key sections of the documentation into Georgian would empower local developers to learn and adopt more effectively.
Proposal
I propose translating key sections of the documentation into Georgian.
Beta Was this translation helpful? Give feedback.
All reactions