Skip to content

Commit 0bdb406

Browse files
authored
Merge pull request #503 from reactjs/codex/fix-pr-386
Refine the Quick Start translation
2 parents db29e7c + 176527f commit 0bdb406

1 file changed

Lines changed: 24 additions & 28 deletions

File tree

src/content/learn/index.md

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@ title: Хурдан Эхлэх
44

55
<Intro>
66

7-
React documentation-д тавтай морил! Энэ хуудсанд таны өдөр тутам хэрэглэх React-ийн 80%-ийн ойлголтуудыг танилцуулах болно.
7+
React-ийн баримт бичигт тавтай морил! Энэ хуудсаар та өдөр тутам ашиглах React-ийн ойлголтуудын 80%-тай танилцана.
88

99
</Intro>
1010

1111
<YouWillLearn>
1212

13-
- Хэрхэн компонент бүтээж нэгтгэх
14-
- Хэрхэн Markup болон styles нэмэх
13+
- Хэрхэн компонент үүсгэж, нэгтгэх
14+
- Хэрхэн markup болон загвар нэмэх
1515
- Хэрхэн өгөгдөл харуулах
1616
- Хэрхэн нөхцөл болон жагсаалт нэмэх
1717
- Үйл явдалд хэрхэн хариу үйлдэл үзүүлж дэлгэцийг шинэчлэх
1818
- Хэрхэн компонент хооронд өгөгдөл хуваалцах
1919

2020
</YouWillLearn>
2121

22-
## Хэрхэн компонент бүтээж нэгтгэх вэ {/*components*/}
22+
## Хэрхэн компонент үүсгэж, нэгтгэх вэ {/*components*/}
2323

2424
React аппууд нь *компонент*-уудаас буюу бүтэц хэсгүүдээс бүтдэг. Компонент гэдэг нь өөрийн гэсэн логик, харагдах байдалтай UI (user interface) хэсэг юм. Компонент нь жижигхэн товч эсвэл бүтэн хуудас ч байж болдог.
2525

@@ -33,7 +33,7 @@ function MyButton() {
3333
}
3434
```
3535

36-
Ингэснээр та өөрийн товч болох `MyButton`-ыг зарлачихлаа, Одоо үүнийг өөр нэг компонентд нэгтгэж үзье:
36+
Ингэснээр та `MyButton` нэртэй товч компонентоо зарлалаа. Одоо үүнийг өөр компонент дотор ашиглая:
3737

3838
```js {5}
3939
export default function MyApp() {
@@ -46,7 +46,7 @@ export default function MyApp() {
4646
}
4747
```
4848

49-
Компонент нэгтгэх, зарлах нь том үсгээр эхлэж байгааг анзаараарай `<MyButton />`. Ингэснээр та үүнийг React component гэж таних боломжтой. React component нь заавал том үсгээр эхлэх ёстой ба HTML tag-ууд нь жижиг үсэг байх ёстой гэдгийг санаарай.
49+
`<MyButton />` том үсгээр эхэлж байгааг анзаараарай. Ингэснээр React үүнийг компонент гэж танина. React компонентийн нэр заавал том үсгээр, харин HTML tag жижиг үсгээр эхлэх ёстойг санаарай.
5050

5151
Одоо үр дүнг нь үзье:
5252

@@ -73,13 +73,13 @@ export default function MyApp() {
7373

7474
</Sandpack>
7575

76-
`export default` нь файлын үндсэн компонентийг зааж өгдөг. Хэрэв JavaScript syntax талаар ойлголтгүй бол, [MDN](https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export) , [javascript.info](https://javascript.info/import-export) сайтаар зочилж мэдээлэл аваарай.
76+
`export default` нь файлын үндсэн компонентийг зааж өгдөг. Хэрэв JavaScript-ийн энэ syntax-ийн талаар сайн мэдэхгүй бол [MDN](https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export) болон [javascript.info](https://javascript.info/import-export) сайтаас дэлгэрүүлэн уншаарай.
7777

7878
## JSX ашиглан markup бичих нь {/*writing-markup-with-jsx*/}
7979

80-
Markup syntax нь таны харж байгаачлан *JSX* гэж нэрлэгддэг. Ашиглах эсэх нь таны дур боловч ихэнх React төслүүд тохиромжтой байх үүднээс JSX ашигладаг. Мөн бүх [local хөгжүүлэлтэнд санал болгох хэрэгслүүд](/learn/installation) нь JSX-г дэмждэг юм.
80+
Markup syntax нь таны харж байгаачлан *JSX* гэж нэрлэгддэг. Ашиглах эсэх нь таны дур боловч ихэнх React төслүүд тохиромжтой байх үүднээс JSX ашигладаг. Мөн бүх [local хөгжүүлэлтэд санал болгох хэрэгслүүд](/learn/installation) нь JSX-г дэмждэг юм.
8181

82-
JSX нь HTML-ыг бодвол арай хатуу дүрэмтэй. Жишээ нь `<br />` гэх мэт tag-уудыг хаах ёстой. Мөн компонент нь нэгээс дээш JSX tag буцааж болохгүй. Аль нэг parent-д оруулах хэрэгтэй, жишээ нь `<div>...</div>` эсвэл хоосон `<>...</>` гэх wrapper-т:
82+
JSX нь HTML-ыг бодвол арай хатуу дүрэмтэй. Жишээ нь `<br />` гэх мэт tag-уудыг хаах ёстой. Мөн компонент нь нэгээс дээш JSX tag буцааж болохгүй. Аль нэг parent-д оруулах хэрэгтэй, жишээ нь `<div>...</div>` эсвэл хоосон `<>...</>` wrapper-т:
8383

8484
```js {3,6}
8585
function AboutPage() {
@@ -92,11 +92,11 @@ function AboutPage() {
9292
}
9393
```
9494
95-
Хэрэв танд JSX руу хувиргах HTML их байгаа бол, [online converter](https://transform.tools/html-to-jsx) хувиргагчыг ашиглаарай
95+
Хэрэв танд JSX руу хувиргах HTML их байгаа бол [online converter](https://transform.tools/html-to-jsx) хувиргагчийг ашиглаарай.
9696
9797
## Загвар нэмэх нь (styles) {/*adding-styles*/}
9898
99-
React дээр, та CSS class-аа `className` гэж зааж өгөөрэй. Энэ нь HTML дээрхи[`class`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class)-тай ижил замаар ажилладаг. Жишээ нь:
99+
React дээр CSS class-аа `className` гэж зааж өгнө. Энэ нь HTML-ийн [`class`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class)-тай ижил зарчмаар ажилладаг. Жишээ нь:
100100
101101
```js
102102
<img className="avatar" />
@@ -111,11 +111,11 @@ React дээр, та CSS class-аа `className` гэж зааж өгөөрэй.
111111
}
112112
```
113113
114-
React нь CSS файлуудыг хэрхэн нэмэхийг заадаггүй. Энгийнээр бол [`<link>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link) tag-ыг HTML дээрээ зааж өгж болно. Хэрэв тусгай хэрэглүүр эсвэл framework ашиглах бол тухайн заавар, documentation-ээс суулгаж ашиглах зааврыг олоорой.
114+
React нь CSS файлуудыг хэрхэн нэмэхийг заадаггүй. Энгийнээр бол [`<link>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link) tag-ыг HTML дээрээ зааж өгч болно. Хэрэв тусгай хэрэглүүр эсвэл framework ашиглах бол тухайн заавар, documentation-ээс суулгаж ашиглах зааврыг олоорой.
115115
116116
## Өгөгдөл дүрслэх нь {/*displaying-data*/}
117117
118-
JSX нь JavaScript дээр markup хийх боломжийг танд олгодог. Буржгар таныг Javascript-тэйгээ найзлахад чинь туслах ба ингэснээр та өөрийн кодоос зарим нэг хувьсагчийг оруулж, хэрэглэгчдэд харуулах боломжтой. Жишээлвэл доорхи код нь `user.name` -ийг дүрслэнэ:
118+
JSX нь JavaScript дотор markup бичих боломж олгодог. Угалзан хаалт ашиглан JavaScript руу шилжиж, кодын хувьсагчийг оруулан хэрэглэгчид харуулж болно. Жишээлбэл, доорх код `user.name`-ийг дүрсэлнэ:
119119
120120
```js {3}
121121
return (
@@ -125,7 +125,7 @@ return (
125125
);
126126
```
127127
128-
Та мөн JSX аттрибутаас "JavaScript руу зугтаж" болно, гэхдээ та хашилтын оронд буржгар ашиглах хэрэгтэй. Жишээлбэл, `className="avatar"` нь `"avatar"` мөрийг CSS class болгон дамжуулдаг боловч `src={user.imageUrl}` нь JavaScript `user.imageUrl` хувьсагчийн утгыг уншиж, дараа нь энэ утгыг `src` атрибут байдлаар дамжуулдаг:
128+
Та мөн JSX атрибутаас "JavaScript руу шилжиж" болно. Үүний тулд хашилтын оронд угалзан хаалт ашиглана. Жишээлбэл, `className="avatar"` нь `"avatar"` мөрийг CSS class болгон дамжуулдаг бол `src={user.imageUrl}` нь JavaScript-ийн `user.imageUrl` хувьсагчийн утгыг уншиж, `src` атрибут болгон дамжуулдаг:
129129
130130
```js {3,4}
131131
return (
@@ -136,7 +136,7 @@ return (
136136
);
137137
```
138138
139-
Та JSX буржгар хаалтанд үүнээс ч илүү төвөгтэй томъёо оруулж болно, жишээлбэл [string concatenation](https://javascript.info/operators#string-concatenation-with-binary):
139+
Та JSX-ийн угалзан хаалтад үүнээс ч илүү төвөгтэй илэрхийлэл оруулж болно. Жишээлбэл, [string concatenation](https://javascript.info/operators#string-concatenation-with-binary):
140140
141141
142142
<Sandpack>
@@ -178,7 +178,7 @@ export default function Profile() {
178178
179179
</Sandpack>
180180
181-
Дээрхи жишээнд, `style={{}}` нь онцгой синтакс биш, харин `style={ }` JSX буржгар хаалт доторх ердийн `{}` объект юм. Таны загвар(style) JavaScript хувьсагчдаас хамаарах үед та `style` атрибутыг ашиглаж болно.
181+
Дээрх жишээн дэх `style={{}}` нь онцгой syntax биш, харин `style={ }` JSX угалзан хаалт доторх ердийн `{}` объект юм. Таны загвар (style) JavaScript хувьсагчдаас хамаарах үед `style` атрибутыг ашиглаж болно.
182182
183183
184184
## Нөхцөлт дүрслэл {/*conditional-rendering*/}
@@ -305,7 +305,7 @@ function MyButton() {
305305
306306
## Дэлгэц шинэчлэх нь {/*updating-the-screen*/}
307307
308-
Зарим тохиолдолд та өөрийн зарим мэдээллийг "санаж", харуулах компонент үүсгэхийг хүсэж магадгүй. Жишээлбэл, та товчыг хэдэн удаа дарж байгааг тоолмоор байж болно. Үүнийг хийхийн тулд өөрийн компонентэд *state* нэмнэ.
308+
Зарим тохиолдолд та өөрийн зарим мэдээллийг "санаж", харуулах компонент үүсгэхийг хүсэж магадгүй. Жишээлбэл, та товчыг хэдэн удаа дарж байгааг тоолмоор байж болно. Үүнийг хийхийн тулд өөрийн компонентэд *төлөв* буюу *state* нэмнэ.
309309
310310
Эхлээд React-аас [`useState`](/reference/react/useState) импортлох хэрэгтэй:
311311
@@ -323,7 +323,7 @@ function MyButton() {
323323
324324
Та `useState`-ээс хоёр зүйлийг авах болно: одоогийн төлөв (`count`) болон үүнийг шинэчлэх боломжийг олгодог функц (`setCount`). Та тэдэнд ямар ч нэр өгч болно, гэхдээ дүрэм нь `[yamarnegzvil, setYamarnegzvil]` гэж бичих юм.
325325
326-
Товч анх үзэгдэх үед `count` нь `0` байх болно, учир нь та `useState()` руу `0`-г дамжуулсан. Төлөвийг өөрчлөхийг хүсвэл `setCount()'-ыг дуудаж түүнд шинэ утгыг дамжуулаарай. Товчийг дарснаар тоолуур нэмэгдэнэ:
326+
Товч анх үзэгдэх үед `count` нь `0` байх болно, учир нь та `useState()` руу `0`-г дамжуулсан. Төлөвийг өөрчлөхийг хүсвэл `setCount()`-ыг дуудаж түүнд шинэ утгыг дамжуулаарай. Товчийг дарснаар тоолуур нэмэгдэнэ:
327327
328328
```js {5}
329329
function MyButton() {
@@ -343,7 +343,7 @@ function MyButton() {
343343
344344
React таны компонентийн функцийг дахин дуудна. Товчин дээр дарах үед тоо нь `1` болно, дараа нь `2` болно гэх мэт.
345345
346-
Хэрэв компонентоо 2 удаа дуудвал тус тус өөрийн төлөвтэй байх болно. Аль аль товчыг нь дараад үзээрэй
346+
Хэрэв компонентоо 2 удаа дуудвал тус тус өөрийн төлөвтэй байх болно. Аль аль товчыг нь дараад үзээрэй.
347347
348348
<Sandpack>
349349
@@ -385,11 +385,11 @@ button {
385385
</Sandpack>
386386
387387
388-
Товч тус бүр өөрийн `тоолох` төлөвийг хэрхэн "санаж", нөгөө тоолуурдаа нөлөөлөхгүй байгааг анзаараарай.
388+
Товч тус бүр өөрийн `тоолох` төлөвийг хэрхэн "санаж", нөгөө тоолууртаа нөлөөлөхгүй байгааг анзаараарай.
389389
390390
## Hooks ашиглах нь {/*using-hooks*/}
391391
392-
`use`-ээр эхэлсэн функцуудыг ерөнхийд нь *Hooks* гэж нэрлэдэг. Жишээ нь `useState` гэхэд React-ийн бэлдэж суурилуулсан Hook бөгөөд Бусад React-ийн бэлдэж суурилуулсан Hook-уудийг [API лавлагаа.](/reference/react) дотроос олох боломжтой. Та мөн бэлдсэн Hook-уудийг ашиглан нэгтгэж өөрийн гэсэн hook бичих боломжтой.
392+
`use`-ээр эхэлсэн функцуудыг ерөнхийд нь *Hooks* гэж нэрлэдэг. Жишээ нь `useState` гэхэд React-ийн бэлдэж суурилуулсан Hook бөгөөд бусад React-ийн бэлдэж суурилуулсан Hook-уудыг [API лавлагаа](/reference/react) дотроос олох боломжтой. Та мөн бэлдсэн Hook-уудыг ашиглан нэгтгэж өөрийн гэсэн hook бичих боломжтой.
393393
394394
Hooks нь бусад функцуудээ бодвол арай хязгаарлагдмал байдаг. Та hook дуудахдаа зөвхөн компонентийн дээд хэсэгт дуудах ёстой. Хэрэв та нөхцөл эсвэл давталтанд `useState`-г ашиглахыг хүсвэл шинэ компонент задалж, тэнд байрлуулаарай.
395395
@@ -415,9 +415,7 @@ Hooks нь бусад функцуудээ бодвол арай хязгаар
415415
416416
Гэсэн хэдий ч танд өгөгдөл хуваалцдаг, үргэлж хамт шинэчлэгддэг компонентууд хэрэг болно
417417
418-
To make both `MyButton` components display the same `count` and update together, you need to move the state from the individual buttons "upwards" to the closest component containing all of them.
419-
420-
Тусдаа орших хоёр `MyButton` компонентийн тоолуурийг ижил болгохын тулд, Тоолуурын функцээ хамгийн эхэнд байрлах буюу үндсэн компонентийн дотор байрлуулах хэрэгтэй.
418+
Хоёр `MyButton` компонентод ижил `count` харуулж, хамтад нь шинэчлэхийн тулд тус тусын товч доторх төлөвийг тэдгээрийг агуулдаг хамгийн ойрын компонент руу дээш шилжүүлэх хэрэгтэй.
421419
422420
Доорхи жишээн дээр `MyApp` компонент дотор байрлуулав:
423421
@@ -439,7 +437,7 @@ To make both `MyButton` components display the same `count` and update together,
439437
440438
Одоо та аль нэг товч дээр дарахад `MyApp` доторх `count` төлөв өөрчлөгдөх бөгөөд энэ нь `MyButton`-ий тоонуудыг хоёуланг нь өөрчлөх болно. Үүнийг кодоор хэрхэн илэрхийлж болохыг доорхи жишээнээс үзнэ үү.
441439
442-
Эхлээд, *State ээ* `MyButton` дотроос авж `MyApp`-руу нүүлгье:
440+
Эхлээд *state*-ийг `MyButton` дотроос `MyApp` руу шилжүүлье:
443441
444442
```js {2-6,18}
445443
export default function MyApp() {
@@ -500,10 +498,8 @@ function MyButton({ count, onClick }) {
500498
}
501499
```
502500
503-
When you click the button, the `onClick` handler fires. Each button's `onClick` prop was set to the `handleClick` function inside `MyApp`, so the code inside of it runs. That code calls `setCount(count + 1)`, incrementing the `count` state variable. The new `count` value is passed as a prop to each button, so they all show the new value. This is called "lifting state up". By moving state up, you've shared it between components.
504-
501+
Товчийг дарахад `onClick` handler ажиллана. Товч бүрийн `onClick` prop-ийг `MyApp` доторх `handleClick` функцээр тохируулсан тул уг функцийн код ажиллана. Тэр код `setCount(count + 1)`-ыг дуудаж, `count` төлөвийн хувьсагчийг нэмэгдүүлнэ. Шинэ `count` утгыг товч бүрт prop болгон дамжуулдаг тул бүгд шинэ утгыг харуулна. Үүнийг "төлөвийг дээш өргөх" (lifting state up) гэж нэрлэдэг. Ингэснээр төлөвийг компонентууд хоорондоо хуваалцана.
505502
506-
Таныг товчин дээр дарах үед, `onClick` handler асах болно. Товч тус бүрийн`onClick` prop-ийг `MyApp` доторхи `handleClick` функцээр тохируулсан тул доторх код нь ажиллах юм. Энэ код нь `setCount(count + 1)`-ийг дуудах ба `count` төлөвийн хувьсагчийг нэмэгдүүлнэ. Шинэ `count` утгыг товч бүрт prop болгон дамжуулдаг тул бүгд шинэ утгыг харуулдаг. Үүнийг "төлөв өргөх(lifting state up)" гэж нэрлэнэ. Төлөвийг дээшлүүлснээр та үүнийг компонентуудын хооронд мэдээлэл хуваалцах юм.
507503
<Sandpack>
508504
509505
```js

0 commit comments

Comments
 (0)