Skip to content

Commit c3ae73c

Browse files
committed
incorporating the comments
1 parent a47358f commit c3ae73c

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

src/content/learn/index.md

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ Từ khóa `export default` chỉ thành phần (component) chính trong file. N
7777

7878
## Viết markup với JSX {/*writing-markup-with-jsx*/}
7979

80-
Cú pháp đánh dấu bạn đã thấy ở trên được gọi là *JSX*. Nó là tùy chọn, nhưng hầu hết các dự án React sử dụng JSX vì sự tiện lợi của nó. Tất cả [các công cụ chúng tôi giới thiệu cho việc phát triển cục bộ](/learn/installation) đều hỗ trợ JSX từ đầu.
80+
Cú pháp đánh dấu bạn đã thấy ở trên được gọi là *JSX*. Nó không bắt buộc, nhưng hầu hết các dự án React sử dụng JSX vì sự tiện lợi của nó. Tất cả [các công cụ chúng tôi giới thiệu cho việc phát triển cục bộ](/learn/installation) đều hỗ trợ JSX từ đầu.
8181

8282
JSX nghiêm ngặt hơn HTML. Bạn phải đóng thẻ như `<br />`. Thành phần (component) của bạn cũng không thể trả về nhiều thẻ JSX. Bạn phải bọc chúng vào một thẻ cha chung, như `<div>...</div>` hoặc một bọc rỗng `<>...</>`:
8383

@@ -115,7 +115,7 @@ React không quy định cách bạn thêm các tệp CSS. Trong trường hợp
115115
116116
## Hiển thị dữ liệu {/*displaying-data*/}
117117
118-
JSX cho phép bạn đặt cú pháp đánh dấu vào JavaScript. Dấu ngoặc nhọn cho phép bạn "thoát lại" vào JavaScript để bạn có thể nhúng một biến từ mã của bạn và hiển thị nó cho người dùng. Ví dụ, điều này sẽ hiển thị `user.name`:
118+
JSX cho phép bạn đặt cú pháp đánh dấu (markup) vào JavaScript. Dấu ngoặc nhọn cho phép bạn "trở lại" vào JavaScript để bạn có thể nhúng một biến từ mã của bạn và hiển thị nó cho người dùng. Ví dụ, điều này sẽ hiển thị `user.name`:
119119
120120
```js {3}
121121
return (
@@ -126,7 +126,7 @@ return (
126126
```
127127
128128
129-
Bạn cũng có thể "thoát vào JavaScript" từ các thuộc tính JSX, nhưng bạn phải sử dụng dấu ngoặc nhọn *thay vì* dấu ngoặc kép. Ví dụ, `className="avatar"` truyền chuỗi `"avatar"` làm lớp CSS, nhưng `src={user.imageUrl}` đọc giá trị biến JavaScript `user.imageUrl`, và sau đó truyền giá trị đó làm thuộc tính `src`:
129+
Bạn cũng có thể "trở lại JavaScript" từ các thuộc tính JSX, nhưng bạn phải sử dụng dấu ngoặc nhọn *thay vì* dấu ngoặc kép. Ví dụ, `className="avatar"` truyền chuỗi `"avatar"` làm lớp CSS, nhưng `src={user.imageUrl}` đọc giá trị biến JavaScript `user.imageUrl`, và sau đó truyền giá trị đó làm thuộc tính `src`:
130130
131131
```js {3,4}
132132
return (
@@ -210,7 +210,7 @@ Nếu bạn muốn mã gọn hơn, bạn có thể sử dụng [điều kiện `
210210
</div>
211211
```
212212
213-
Khi bạn không cần dùng nhánh `else`, bạn cũng có thể sử dụng cách ngắn hơn [điều kiện `&&` cú pháp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND#short-circuit_evaluation):
213+
Khi bạn không cần nhánh `else`, bạn cũng có thể sử dụng cách ngắn hơn [điều kiện `&&` logic ngắn gọn](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND#short-circuit_evaluation):
214214
215215
```js
216216
<div>
@@ -279,9 +279,9 @@ export default function ShoppingList() {
279279
280280
</Sandpack>
281281
282-
## Phản ứng tới các sự kiện {/*responding-to-events*/}
282+
## Xử lý các sự kiện {/*responding-to-events*/}
283283
284-
Bạn có thể phản ứng với các sự kiện bằng cách khai báo các *hàm xử lý sự kiện* bên trong các component của bạn:
284+
Bạn có thể xử lý các sự kiện bằng cách khai báo các *hàm xử lý sự kiện* bên trong các component của bạn:
285285
286286
```js {2-4,7}
287287
function MyButton() {
@@ -388,22 +388,20 @@ Các hàm bắt đầu bằng `use` được gọi là *Hooks*. `useState` là m
388388
389389
Các Hook có các hạn chế hơn so với các hàm khác. Bạn chỉ có thể gọi các Hook *ở đầu* của các component của bạn (hoặc các Hook khác). Nếu bạn muốn sử dụng `useState` trong một điều kiện hoặc một vòng lặp, hãy trích xuất một component mới và đặt nó ở đó.
390390
391-
## Chia sẻ dữ liệu giữa các components {/*sharing-data-between-components*/}
391+
## Chia sẻ dữ liệu giữa các component {/*sharing-data-between-components*/}
392392
393393
Trong ví dụ trước đó, mỗi `MyButton` có một `count` độc lập riêng, và khi mỗi nút được nhấp vào, chỉ có `count` của nút đó mới thay đổi:
394394
395395
<DiagramGroup>
396396
397397
<Diagram name="sharing_data_child" height={367} width={407} alt="Diagram showing a tree of three components, one parent labeled MyApp and two children labeled MyButton. Both MyButton components contain a count with value zero.">
398398
399-
Khởi đầu, mỗi trạng thái `count` của `MyButton``0`
400-
399+
Ban đầu, trạng thái `count` của mỗi `MyButton``0`
401400
</Diagram>
402401
403402
<Diagram name="sharing_data_child_clicked" height={367} width={407} alt="The same diagram as the previous, with the count of the first child MyButton component highlighted indicating a click with the count value incremented to one. The second MyButton component still contains value zero." >
404403
405-
Đầu tiên `MyButton` được cập nhật `count` của nó lên `1`
406-
404+
Nút `MyButton` đầu tiên cập nhật trạng thái `count` của nó thành `1`
407405
</Diagram>
408406
409407
</DiagramGroup>
@@ -424,15 +422,15 @@ Ban đầu, trạng thái `count` của `MyApp` là `0` và được truyền xu
424422
425423
<Diagram name="sharing_data_parent_clicked" height={385} width={410} alt="The same diagram as the previous, with the count of the parent MyApp component highlighted indicating a click with the value incremented to one. The flow to both of the children MyButton components is also highlighted, and the count value in each child is set to one indicating the value was passed down." >
426424
427-
Khi nhấp vào, `MyApp` cập nhật trạng thái `count` của nó thành `1` và truyền nó xuống cả hai children
425+
Khi được nhấp vào, `MyApp` cập nhật trạng thái `count` của nó thành `1` và truyền nó xuống cho cả hai thành phần con.
428426
429427
</Diagram>
430428
431429
</DiagramGroup>
432430
433-
Bây giờ khi bạn nhấp vào bất kỳ nút nào, `count` trong `MyApp` sẽ thay đổi, điều này sẽ thay đổi cả hai count trong `MyButton`. Đây là cách bạn có thể biểu diễn điều này trong code.
431+
Bây giờ khi bạn nhấp vào bất kỳ nút nào, `count` trong `MyApp` sẽ thay đổi, điều này sẽ thay đổi cả hai `count` trong `MyButton`. Dưới đây là cách bạn có thể biểu diễn điều này trong mã (code).
434432
435-
Đầu tiên, *dịch chuyển trạng thái (state) đi lên* từ `MyButton` vào `MyApp`:
433+
Đầu tiên, *di chuyển trạng thái (state) lên* từ `MyButton` vào `MyApp`:
436434
437435
```js {2-6,18}
438436
export default function MyApp() {
@@ -457,7 +455,7 @@ function MyButton() {
457455

458456
```
459457
460-
Sau đó, *truyền trạng thái (state) xuống* từ `MyApp` đến mỗi `MyButton`, cùng với trình xử lý click được chia sẻ. Bạn có thể truyền thông tin cho `MyButton` bằng cách sử dụng dấu ngoặc nhọn JSX, giống như bạn đã làm trước đây với các thẻ tích hợp như `<img>`:
458+
Sau đó, *truyền trạng thái (state) xuống* từ `MyApp` đến mỗi `MyButton`, cùng với trình xử lý click chung. Bạn có thể truyền thông tin cho `MyButton` bằng cách sử dụng dấu ngoặc nhọn JSX, giống như bạn đã làm trước đây với các thẻ tích hợp như `<img>`:
461459
462460
```js {11-12}
463461
export default function MyApp() {
@@ -491,7 +489,7 @@ function MyButton({ count, onClick }) {
491489
}
492490
```
493491
494-
Khi bạn nhấp vào nút, trình xử lý `onClick` được kích hoạt. Mỗi prop `onClick` của nút được đặt thành hàm `handleClick` bên trong `MyApp`, vì vậy mã bên trong nó chạy. Mã đó gọi `setCount(count + 1)`, tăng biến trạng thái `count`. Giá trị `count` mới được truyền như một prop cho mỗi nút, vì vậy chúng đều hiển thị giá trị mới. Điều này được gọi là "nâng cao trạng thái". Bằng cách di chuyển trạng thái lên, bạn đã chia sẻ nó giữa các thành phần.
492+
Khi bạn nhấp vào nút, trình xử lý `onClick` sẽ được kích hoạt. Mỗi prop `onClick` của nút được đặt thành hàm `handleClick` bên trong `MyApp`, vì vậy mã bên trong nó chạy. Mã đó gọi `setCount(count + 1)`, tăng biến trạng thái `count`. Giá trị `count` mới được truyền như một prop cho mỗi nút, vì vậy chúng đều hiển thị giá trị mới. Điều này được gọi là "nâng cao trạng thái". Bằng cách di chuyển trạng thái lên, bạn đã chia sẻ nó giữa các thành phần.
495493
496494
<Sandpack>
497495

0 commit comments

Comments
 (0)