From 0cfa3117ed228f7b4bfb0de00aba84484ca10912 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rado=C5=A1=20Mili=C4=87ev?= <40705899+rammba@users.noreply.github.com> Date: Sun, 20 Apr 2025 13:37:53 +0200 Subject: [PATCH] Translate reacting-to-input-with-state.md --- src/content/learn/managing-state.md | 2 +- .../learn/reacting-to-input-with-state.md | 346 +++++++++--------- 2 files changed, 174 insertions(+), 174 deletions(-) diff --git a/src/content/learn/managing-state.md b/src/content/learn/managing-state.md index 669f6ca8..555bf922 100644 --- a/src/content/learn/managing-state.md +++ b/src/content/learn/managing-state.md @@ -22,7 +22,7 @@ Povećavanjem aplikacije, važno je da budete svesni kako vam je state organizov ## Reagovanje na input pomoću stanja {/*reacting-to-input-with-state*/} -Sa React-om, nećete direktno u kodu menjati UI. Na primer, nećete pisati komande poput "onemogući dugme", "omogući dugme", "prikaži uspešnu poruku", itd. Umesto toga, opisaćete kakav UI želite da vidite za različita vizuelna stanja vaše komponente ("inicijalno stanje", "stanje pisanja", "uspešno stanje"), a onda ćete pokrenuti promene state-a kao odgovor na korisnički input. Ovo je slično onome kako dizajneri razmišljaju o UI-u. +Sa React-om, nećete direktno u kodu menjati UI. Na primer, nećete pisati komande poput "onemogući dugme", "omogući dugme", "prikaži uspešnu poruku", itd. Umesto toga, opisaćete kakav UI želite da vidite za različita vizuelna stanja vaše komponente ("inicijalno stanje", "stanje pisanja", "uspešno stanje"), a onda ćete pokrenuti promene stanja kao odgovor na korisnički input. Ovo je slično onome kako dizajneri razmišljaju o UI-u. Ovde je forma za kviz napravljena pomoću React-a. Primetite kako koristi `status` state promenljivu da odluči da li da omogući submit dugme i da li da prikaže uspešnu poruku. diff --git a/src/content/learn/reacting-to-input-with-state.md b/src/content/learn/reacting-to-input-with-state.md index da559dc0..e14c2307 100644 --- a/src/content/learn/reacting-to-input-with-state.md +++ b/src/content/learn/reacting-to-input-with-state.md @@ -1,37 +1,37 @@ --- -title: Reacting to Input with State +title: Reagovanje na input pomoću stanja --- -React provides a declarative way to manipulate the UI. Instead of manipulating individual pieces of the UI directly, you describe the different states that your component can be in, and switch between them in response to the user input. This is similar to how designers think about the UI. +React pruža deklarativan način za manipulisanje UI-jem. Umesto da direktno manipulišete pojedinačnim delovima UI-a, vi opisujete različita stanja u kojima komponenta može biti i menjate ih kao odgovor na korisnički input. Ovo je slično onome kako dizajneri razmišljaju o UI-u. -* How declarative UI programming differs from imperative UI programming -* How to enumerate the different visual states your component can be in -* How to trigger the changes between the different visual states from code +* Kako se deklarativno UI programiranje razlikuje od imperativnog UI programiranja +* Kako da nabrojite različita vizuelna stanja u kojima vaša komponenta može biti +* Kako da pokrenete promene između različitih vizuelnih stanja iz koda -## How declarative UI compares to imperative {/*how-declarative-ui-compares-to-imperative*/} +## Kakav je deklarativan UI u poređenju sa imperativnim {/*how-declarative-ui-compares-to-imperative*/} -When you design UI interactions, you probably think about how the UI *changes* in response to user actions. Consider a form that lets the user submit an answer: +Kada dizajnirate UI interakcije, verovatno razmišljate kako se UI *menja* kao odgovor na korisničke akcije. Razmotrite formu koja korisniku omogućava da submit-uje odgovor: -* When you type something into the form, the "Submit" button **becomes enabled.** -* When you press "Submit", both the form and the button **become disabled,** and a spinner **appears.** -* If the network request succeeds, the form **gets hidden,** and the "Thank you" message **appears.** -* If the network request fails, an error message **appears,** and the form **becomes enabled** again. +* Kad pišete nešto u formu, "Submit" dugme **postaje omogućeno**. +* Kada pritisnete "Submit", i forma i dugme **postaju onemogućeni**, a **pojavljuje se** spinner. +* Ako mrežni zahtev uspe, forma **postaje skrivena**, a poruka "Hvala vam" **se pojavljuje**. +* Ako mrežni zahtev ne uspe, **pojavljuje se** poruka o grešci, a forma ponovo **postaje omogućena**. -In **imperative programming,** the above corresponds directly to how you implement interaction. You have to write the exact instructions to manipulate the UI depending on what just happened. Here's another way to think about this: imagine riding next to someone in a car and telling them turn by turn where to go. +U **imperativnom programiranju** gore navedeno direktno odgovara načinu na koji implementirate interakciju. Morate napisati tačne instrukcije za manipulaciju UI-jem na osnovu onoga što se desilo. Evo drugog načina da razmišljate o tome: zamislite da se vozite pored nekoga u autu i govorite mu svaki put gde da skrene. - + -They don't know where you want to go, they just follow your commands. (And if you get the directions wrong, you end up in the wrong place!) It's called *imperative* because you have to "command" each element, from the spinner to the button, telling the computer *how* to update the UI. +Ne zna gde želite da idete, već samo prati vaše komande. (I, ako vi promašite smer, završićete na pogrešnom mestu!) Naziva se *imperativno* jer morate da "komandujete" svaki element, od spinner-a do dugmeta, govoreći računaru *kako* da ažurira UI. -In this example of imperative UI programming, the form is built *without* React. It only uses the browser [DOM](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model): +U ovom primeru imperativnog UI programiranja, forma je napravljena *bez* React-a. Koristi jedino [DOM](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model) od pretraživača: @@ -81,13 +81,13 @@ function disable(el) { } function submitForm(answer) { - // Pretend it's hitting the network. + // Pretvaraj se da koristiš mrežni poziv. return new Promise((resolve, reject) => { setTimeout(() => { if (answer.toLowerCase() === 'istanbul') { resolve(); } else { - reject(new Error('Good guess but a wrong answer. Try again!')); + reject(new Error('Dobar pokušaj, ali pogrešan odgovor. Probaj ponovo!')); } }, 1500); }); @@ -111,17 +111,17 @@ textarea.oninput = handleTextareaChange; ```html public/index.html
-

City quiz

+

Kviz gradova

- What city is located on two continents? + Koji grad se nalazi na dva kontinenta?


- +
-

That's right!

+

To je tačno!