Skip to content

Commit ea1822b

Browse files
Translate Add React to an Existing Project page (#454)
* Translate Add React to an Existing Project page * Apply suggestions from code review Co-authored-by: Jakub Drozdek <30927218+jakubdrozdek@users.noreply.github.com> * Apply additional changes from code review --------- Co-authored-by: Jakub Drozdek <30927218+jakubdrozdek@users.noreply.github.com>
1 parent 9919cbe commit ea1822b

File tree

2 files changed

+53
-52
lines changed

2 files changed

+53
-52
lines changed
Lines changed: 51 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,132 +1,133 @@
11
---
2-
title: Add React to an Existing Project
2+
title: Dodaj Reacta do istniejącego projektu
33
---
44

55
<Intro>
66

7-
If you want to add some interactivity to your existing project, you don't have to rewrite it in React. Add React to your existing stack, and render interactive React components anywhere.
7+
Jeśli chcesz dodać trochę interaktywności do istniejącego projektu, nie musisz przepisywać go w Reakcie. Dodaj Reacta do istniejącego stacku i renderuj interaktywne komponenty w dowolnym miejscu
88

99
</Intro>
1010

1111
<Note>
1212

13-
**You need to install [Node.js](https://nodejs.org/en/) for local development.** Although you can [try React](/learn/installation#try-react) online or with a simple HTML page, realistically most JavaScript tooling you'll want to use for development requires Node.js.
13+
**Musisz zainstalować [Node.js](https://nodejs.org/en/) do programowania w środowisku lokalnym.** Chociaż możesz [wypróbować Reacta](/learn/installation#try-react) online lub z pomocą prostej strony HTML, realistycznie większość javascriptowych narzędzi, których będziesz chcieć użyć do programowania, wymaga Node.js.
1414

1515
</Note>
1616

17-
## Using React for an entire subroute of your existing website {/*using-react-for-an-entire-subroute-of-your-existing-website*/}
17+
## Korzystanie z Reacta dla całej podścieżki istniejącej strony internetowej {/*using-react-for-an-entire-subroute-of-your-existing-website*/}
1818

19-
Let's say you have an existing web app at `example.com` built with another server technology (like Rails), and you want to implement all routes starting with `example.com/some-app/` fully with React.
19+
Załóżmy, że masz istniejącą aplikację internetową pod adresem `example.com` zbudowaną przy użyciu innej technologii serwerowej (np. Rails) i chcesz zaimplementować wszystkie ścieżki zaczynające się od `example.com/some-app/` przy użyciu Reacta.
2020

21-
Here's how we recommend to set it up:
21+
Oto jak polecamy to skonfigurować:
2222

23-
1. **Build the React part of your app** using one of the [React-based frameworks](/learn/start-a-new-react-project).
24-
2. **Specify `/some-app` as the *base path*** in your framework's configuration (here's how: [Next.js](https://nextjs.org/docs/api-reference/next.config.js/basepath), [Gatsby](https://www.gatsbyjs.com/docs/how-to/previews-deploys-hosting/path-prefix/)).
25-
3. **Configure your server or a proxy** so that all requests under `/some-app/` are handled by your React app.
23+
1. **Zbuduj część aplikacji w Reakcie** przy użyciu jednego z [frameworków opartych na Reakcie](/learn/start-a-new-react-project).
24+
2. **Określ `/some-app` jako *bazową ścieżkę*** w konfiguracji twojego frameworka (oto jak: [Next.js](https://nextjs.org/docs/api-reference/next.config.js/basepath), [Gatsby](https://www.gatsbyjs.com/docs/how-to/previews-deploys-hosting/path-prefix/)).
25+
3. **Skonfiguruj serwer lub proxy**, aby wszystkie żądania pod adresem `/some-app/` były obsługiwane przez twoją aplikację w Reakcie.
2626

27-
This ensures the React part of your app can [benefit from the best practices](/learn/start-a-new-react-project#can-i-use-react-without-a-framework) baked into those frameworks.
2827

29-
Many React-based frameworks are full-stack and let your React app take advantage of the server. However, you can use the same approach even if you can't or don't want to run JavaScript on the server. In that case, serve the HTML/CSS/JS export ([`next export` output](https://nextjs.org/docs/advanced-features/static-html-export) for Next.js, default for Gatsby) at `/some-app/` instead.
28+
Dzięki temu część aplikacji napisana w Reakcie będzie mogła [korzystać z najlepszych praktyk](/learn/start-a-new-react-project#can-i-use-react-without-a-framework) wbudowanych w te frameworki.
3029

31-
## Using React for a part of your existing page {/*using-react-for-a-part-of-your-existing-page*/}
30+
Wiele frameworków opartych na Reakcie jest full-stackowych i pozwala twojej reactowej aplikacji wykorzystać serwer. Można jednak zastosować takie samo podejście, nawet jeśli nie możesz lub nie chcesz uruchamiać JavaScriptu na serwerze. W takim przypadku, zamiast tego dostarcz wyeksportowane pliki HTML/CSS/JS ([pliki wyjściowe z `next export`](https://nextjs.org/docs/advanced-features/static-html-export) dla Next.js, domyślne dla Gatsby) pod adresem `/some-app/`.
3231

33-
Let's say you have an existing page built with another technology (either a server one like Rails, or a client one like Backbone), and you want to render interactive React components somewhere on that page. That's a common way to integrate React--in fact, it's how most React usage looked at Meta for many years!
32+
## Korzystanie z Reacta dla części istniejącej strony {/*using-react-for-a-part-of-your-existing-page*/}
3433

35-
You can do this in two steps:
34+
Załóżmy, że masz istniejącą stronę zbudowaną przy użyciu innej technologii (może to być technologia serwerowa, jak Rails, lub klientowa, jak Backbone), i chcesz renderować interaktywne komponenty Reacta gdzieś na tej stronie. Jest to powszechny sposób integracji Reacta - w rzeczywistości, większość zastosowań Reacta wyglądała właśnie tak w Meta przez wiele lat!
3635

37-
1. **Set up a JavaScript environment** that lets you use the [JSX syntax](/learn/writing-markup-with-jsx), split your code into modules with the [`import`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) / [`export`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export) syntax, and use packages (for example, React) from the [npm](https://www.npmjs.com/) package registry.
38-
2. **Render your React components** where you want to see them on the page.
36+
Możesz to zrobić w dwóch krokach:
3937

40-
The exact approach depends on your existing page setup, so let's walk through some details.
38+
1. **Skonfiguruj środowisko javascriptowe**, które pozwoli ci używać [składni JSX](/learn/writing-markup-with-jsx), podziel kod na moduły za pomocą składni [`import`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) / [`export`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export) oraz używaj pakietów (na przykład React) z rejestru pakietów [npm](https://www.npmjs.com/).
39+
2. **Renderuj swoje reactowe komponenty** tam, gdzie chcesz je zobaczyć na stronie.
4140

42-
### Step 1: Set up a modular JavaScript environment {/*step-1-set-up-a-modular-javascript-environment*/}
41+
Dokładny sposób postępowania zależy od konfiguracji istniejącej strony, więc przejdźmy przez kilka szczegółów.
4342

44-
A modular JavaScript environment lets you write your React components in individual files, as opposed to writing all of your code in a single file. It also lets you use all the wonderful packages published by other developers on the [npm](https://www.npmjs.com/) registry--including React itself! How you do this depends on your existing setup:
43+
### Krok 1: Skonfiguruj modularne środowisko javascriptowe {/*step-1-set-up-a-modular-javascript-environment*/}
4544

46-
* **If your app is already split into files that use `import` statements,** try to use the setup you already have. Check whether writing `<div />` in your JS code causes a syntax error. If it causes a syntax error, you might need to [transform your JavaScript code with Babel](https://babeljs.io/setup), and enable the [Babel React preset](https://babeljs.io/docs/babel-preset-react) to use JSX.
45+
Modularne środowisko javascriptowe umożliwia pisanie reactowych komponentów w osobnych plikach, zamiast umieszczania całego kodu w jednym pliku. Pozwala również na korzystanie ze wspaniałych pakietów opublikowanych przez innych deweloperów w rejestrze [npm](https://www.npmjs.com/) - w tym także z Reacta! Sposób postępowania zależy od istniejącej konfiguracji:
4746

48-
* **If your app doesn't have an existing setup for compiling JavaScript modules,** set it up with [Vite](https://vitejs.dev/). The Vite community maintains [many integrations with backend frameworks](https://github.com/vitejs/awesome-vite#integrations-with-backends), including Rails, Django, and Laravel. If your backend framework is not listed, [follow this guide](https://vitejs.dev/guide/backend-integration.html) to manually integrate Vite builds with your backend.
47+
* **Jeśli twoja aplikacja jest już podzielona na pliki, które używają instrukcji `import`**, spróbuj użyć istniejącej konfiguracji. Sprawdź, czy napisanie `<div />` w kodzie JavaScript powoduje błąd składniowy. Jeśli powoduje błąd składniowy, możesz potrzebować [przetworzyć swój kod JavaScript za pomocą narzędzia Babel](https://babeljs.io/setup) i włączyć [Babel React preset](https://babeljs.io/docs/babel-preset-react), aby używać JSX.
4948

50-
To check whether your setup works, run this command in your project folder:
49+
* **Jeśli twoja aplikacja nie ma istniejącej konfiguracji do kompilowania modułów JavaScript**, skonfiguruj ją przy użyciu [Vite](https://vitejs.dev/). Społeczność Vite utrzymuje [wiele integracji z frameworkami backendowymi](https://github.com/vitejs/awesome-vite#integrations-with-backends), w tym z Rails, Django i Laravel. Jeśli nie widzisz na liście twojego frameworka backendowego, [postępuj zgodnie z tym przewodnikiem](https://github.com/vitejs/awesome-vite#integrations-with-backends), aby ręcznie zintegrować proces budowy Vite z twoim backendem.
50+
51+
Aby sprawdzić, czy twoja konfiguracja działa, uruchom następującą komendę w folderze projektu:
5152

5253
<TerminalBlock>
5354
npm install react react-dom
5455
</TerminalBlock>
5556

56-
Then add these lines of code at the top of your main JavaScript file (it might be called `index.js` or `main.js`):
57+
Następnie dodaj te linie kodu na początku głównego pliku JavaScript (może to być plik o nazwie `index.js` lub `main.js`):
5758

5859
<Sandpack>
5960

6061
```html index.html hidden
6162
<!DOCTYPE html>
6263
<html>
63-
<head><title>My app</title></head>
64+
<head><title>Moja aplikacja</title></head>
6465
<body>
65-
<!-- Your existing page content (in this example, it gets replaced) -->
66+
<!-- Zawartość istniejącej strony (w tym przykładzie zostanie zastąpiona) -->
6667
</body>
6768
</html>
6869
```
6970

7071
```js src/index.js active
7172
import { createRoot } from 'react-dom/client';
7273

73-
// Clear the existing HTML content
74+
// Wyczyść istniejącą zawartość HTML
7475
document.body.innerHTML = '<div id="app"></div>';
7576

76-
// Render your React component instead
77+
// Zamiast niej wyrenderuj swój komponent reactowy
7778
const root = createRoot(document.getElementById('app'));
78-
root.render(<h1>Hello, world</h1>);
79+
root.render(<h1>Witaj, świecie!</h1>);
7980
```
8081

8182
</Sandpack>
8283

83-
If the entire content of your page was replaced by a "Hello, world!", everything worked! Keep reading.
84+
Jeśli cała zawartość twojej strony została zastąpiona przez "Witaj, świecie!", to wszystko działa! Kontynuuj czytanie.
8485

8586
<Note>
8687

87-
Integrating a modular JavaScript environment into an existing project for the first time can feel intimidating, but it's worth it! If you get stuck, try our [community resources](/community) or the [Vite Chat](https://chat.vitejs.dev/).
88+
Integracja modularnego środowiska javascriptowego po raz pierwszy do istniejącego już projektu może wydawać się przytłaczająca, ale warto! Jeśli utkniesz, spróbuj skorzystać z [zasobów społeczności](/community) lub [czatu Vite]((https://chat.vitejs.dev/)).
8889

8990
</Note>
9091

91-
### Step 2: Render React components anywhere on the page {/*step-2-render-react-components-anywhere-on-the-page*/}
92+
### Krok 2: Renderuj reactowe komponenty gdziekolwiek na stronie {/*step-2-render-react-components-anywhere-on-the-page*/}
9293

93-
In the previous step, you put this code at the top of your main file:
94+
W poprzednim kroku umieściliśmy poniższy kod na początku pliku głównego:
9495

9596
```js
9697
import { createRoot } from 'react-dom/client';
9798

98-
// Clear the existing HTML content
99+
// Wyczyść istniejącą zawartość HTML
99100
document.body.innerHTML = '<div id="app"></div>';
100101

101-
// Render your React component instead
102+
// Zamiast niej wyrenderuj swój komponent reactowy
102103
const root = createRoot(document.getElementById('app'));
103-
root.render(<h1>Hello, world</h1>);
104+
root.render(<h1>Witaj, świecie!</h1>);
104105
```
105106

106-
Of course, you don't actually want to clear the existing HTML content!
107+
Oczywiście nie chcesz faktycznie wyczyścić istniejącej zawartości HTML!
107108

108-
Delete this code.
109+
Usuń ten kod.
109110

110-
Instead, you probably want to render your React components in specific places in your HTML. Open your HTML page (or the server templates that generate it) and add a unique [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id) attribute to any tag, for example:
111+
Zamiast tego prawdopodobnie chcesz renderować swoje reactowe komponenty w określonych miejscach w HTML-u. Otwórz swoją stronę HTML (lub szablony serwera, które ją generują) i dodaj unikalny atrybut [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id) do dowolnego tagu, na przykład:
111112

112113
```html
113-
<!-- ... somewhere in your html ... -->
114+
<!-- ... gdzieś w twoim kodzie html ... -->
114115
<nav id="navigation"></nav>
115-
<!-- ... more html ... -->
116+
<!-- ... więcej html-a ... -->
116117
```
117118

118-
This lets you find that HTML element with [`document.getElementById`](https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById) and pass it to [`createRoot`](/reference/react-dom/client/createRoot) so that you can render your own React component inside:
119+
Pozwoli ci to znaleźć ten element HTML za pomocą [`document.getElementById`](https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById) i przekazać go do [`createRoot`](/reference/react-dom/client/createRoot), abyś mógł renderować twój własny komponent reactowy wewnątrz niego:
119120

120121
<Sandpack>
121122

122123
```html index.html
123124
<!DOCTYPE html>
124125
<html>
125-
<head><title>My app</title></head>
126+
<head><title>Moja aplikacja</title></head>
126127
<body>
127-
<p>This paragraph is a part of HTML.</p>
128+
<p>Ten akapit jest częścią HTML-a.</p>
128129
<nav id="navigation"></nav>
129-
<p>This paragraph is also a part of HTML.</p>
130+
<p>Ten akapit jest również częścią HTML-a.</p>
130131
</body>
131132
</html>
132133
```
@@ -135,8 +136,8 @@ This lets you find that HTML element with [`document.getElementById`](https://de
135136
import { createRoot } from 'react-dom/client';
136137

137138
function NavigationBar() {
138-
// TODO: Actually implement a navigation bar
139-
return <h1>Hello from React!</h1>;
139+
// TODO: Dodać implementację paska nawigacji
140+
return <h1>Witaj z Reacta!</h1>;
140141
}
141142

142143
const domNode = document.getElementById('navigation');
@@ -146,10 +147,10 @@ root.render(<NavigationBar />);
146147

147148
</Sandpack>
148149

149-
Notice how the original HTML content from `index.html` is preserved, but your own `NavigationBar` React component now appears inside the `<nav id="navigation">` from your HTML. Read the [`createRoot` usage documentation](/reference/react-dom/client/createRoot#rendering-a-page-partially-built-with-react) to learn more about rendering React components inside an existing HTML page.
150+
Zauważ, że oryginalna zawartość HTML z pliku `index.html` została zachowana, ale twój własny komponent `NavigationBar` od teraz pojawia się wewnątrz `<nav id="navigation">` w kodzie HTML. Przeczytaj dokumentację dotyczącą użycia [`createRoot`](/reference/react-dom/client/createRoot#rendering-a-page-partially-built-with-react), aby dowiedzieć się więcej na temat renderowania komponentów reactowych na istniejącej stronie HTML.
150151

151-
When you adopt React in an existing project, it's common to start with small interactive components (like buttons), and then gradually keep "moving upwards" until eventually your entire page is built with React. If you ever reach that point, we recommend migrating to [a React framework](/learn/start-a-new-react-project) right after to get the most out of React.
152+
Kiedy wdrażasz Reacta w istniejącym projekcie, proces ten często zaczyna się od małych interaktywnych komponentów (takich jak przyciski), a następnie stopniowo "przesuwa się w górę", aż w końcu cała strona jest zbudowana z użyciem Reacta. Jeśli kiedykolwiek osiągniesz ten punkt, zalecamy migrację do [frameworka opartego na Reakcie](/learn/start-a-new-react-project), aby w pełni wykorzystać jego możliwości.
152153

153-
## Using React Native in an existing native mobile app {/*using-react-native-in-an-existing-native-mobile-app*/}
154+
## Korzystanie z React Native w istniejącej aplikacji mobilnej napisanej w natywnym języku {/*using-react-native-in-an-existing-native-mobile-app*/}
154155

155-
[React Native](https://reactnative.dev/) can also be integrated into existing native apps incrementally. If you have an existing native app for Android (Java or Kotlin) or iOS (Objective-C or Swift), [follow this guide](https://reactnative.dev/docs/integration-with-existing-apps) to add a React Native screen to it.
156+
[React Native](https://reactnative.dev/) można również stopniowo integrować z istniejącymi aplikacjami natywnymi. Jeśli masz istniejącą aplikację natywną dla systemu Android (napisaną w Java lub Kotlin) lub iOS (napisaną w Objective-C lub Swift), [postępuj zgodnie z tym przewodnikiem](https://reactnative.dev/docs/integration-with-existing-apps), aby dodać do niej ekran w React Native.

src/sidebarLearn.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"path": "/learn/start-a-new-react-project"
3030
},
3131
{
32-
"title": "Add React to an Existing Project",
32+
"title": "Dodaj Reacta do istniejącego projektu",
3333
"path": "/learn/add-react-to-an-existing-project"
3434
},
3535
{
@@ -194,7 +194,7 @@
194194
},
195195
{
196196
"title": "Removing Effect Dependencies",
197-
"path": "/learn/removing-effect-dependencies"
197+
"path": "/learn/removing-effect-dependencies"
198198
},
199199
{
200200
"title": "Reusing Logic with Custom Hooks",

0 commit comments

Comments
 (0)