Skip to content

Commit cceb07f

Browse files
committed
Fix spell error
1 parent 5e7c3dc commit cceb07f

File tree

1 file changed

+27
-28
lines changed

1 file changed

+27
-28
lines changed

content/docs/state-and-lifecycle.md

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ next: handling-events.html
1010

1111
Trang này giới thiếu khái niệm về state và lifecycle trong React component. Ban có thể tìm [thành phần tham chiếu API chi tiết tại đây](/docs/react-component.html).
1212

13-
Cân nhắc ví dụ đồng hồ đếm giây từ [một trong phần của chương trước](/docs/rendering-elements.html#updating-the-rendered-element). Trong [Rendering Elements](/docs/rendering-elements.html#rendering-an-element-into-the-dom), chúng ta chỉ học cách để update UI. chúng ta gọi `ReactDOM.render()` để thay đổi kết xuất đầu ra (rendered output):
13+
Xem xem lại ví dụ đồng hồ tíc tắc [một phần của chương trước](/docs/rendering-elements.html#updating-the-rendered-element). Trong [Rendering Elements](/docs/rendering-elements.html#rendering-an-element-into-the-dom), chúng ta chỉ học cách để update UI. chúng ta gọi `ReactDOM.render()` để thay đổi đầu ra được kết xuất (rendered output):
1414

1515
```js{8-11}
1616
function tick() {
@@ -31,7 +31,7 @@ setInterval(tick, 1000);
3131

3232
[**Thử trên Codepen**](https://codepen.io/gaearon/pen/gwoJZk?editors=0010)
3333

34-
Trong chương này, chúng ta sẽ học làm thế thế nào để tạo thành phần `Clock` có thể tái sử dụng và đóng gói. Nó sẽ tự đặt thời gian của mình và cập nhập mỗi giây
34+
Trong chương này, chúng ta sẽ học làm thế thế nào để tạo thành phần `Clock` có thể tái sử dụng và đóng gói. Nó sẽ tự đặt bộ hẹn giờ của mình và tự cập nhập mỗi giây
3535

3636
Chúng ta có thể bắt đầu đóng gói và trông nó sẽ như thế này:
3737

@@ -57,9 +57,9 @@ setInterval(tick, 1000);
5757

5858
[**Thử trên CodePen**](https://codepen.io/gaearon/pen/dpdoYR?editors=0010)
5959

60-
Tuy nhiên, nó thiếu một yêu cầu quan trọng: sự thật là `Clock` đặt thời gian và cập nhập lại UI mỗi giây nên là sự thực hiện đầy đủ của `Clock`
60+
Tuy nhiên, nó thiếu một yêu cầu quan trọng: thực tế thì `Clock` đặt bộ hẹn giờ và cập nhập lại UI mỗi giây vi vậy `Clock` nên được làm chi tiết
6161

62-
Lý tưởng nhất là ta làm điều này một lần duy nhất và có một `Clock` tự cập nhập:
62+
Lý tưởng nhất là ta viết một lần duy nhất và có một `Clock` tự cập nhập:
6363

6464
```js{2}
6565
ReactDOM.render(
@@ -68,23 +68,23 @@ ReactDOM.render(
6868
);
6969
```
7070

71-
Để thực hiện điều này, ta cần thêm "state" vào thành phần `Clock`
71+
Để thực hiện điều này, ta cần thêm "state" vào component `Clock`
7272

7373
State cũng tương tự như props, nhưng nó là của riêng component và được kiểm soát hoàn toàn bởi chúng
7474

7575
## Chyển đổi Function thành Class {#converting-a-function-to-a-class}
7676

7777
Bạn có thể chuyển đổi một function của thành phần như `Clock` thành class trong năm bước:
7878

79-
1. Tạo một [ES6 class](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes), cùng tên, cho nó extends`React.Component`.
79+
1. Tạo một [ES6 class](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes), cùng tên, cho nó extends `React.Component`.
8080

8181
2. Thêm một phương thức rỗng được gọi là `render()`.
8282

8383
3. Di chuyển nội dung của function vào bên trong phương thức `render()`
8484

85-
4. Tha thế `props` thành `this.props` trong nội dung của `render()`.
85+
4. Thay thế `props` thành `this.props` trong nội dung của `render()`.
8686

87-
5. Xóa khai báo rỗng còn lại của function .
87+
5. Xóa khai function rỗng còn lại mà ta đã lấy nội dụng .
8888

8989
```js
9090
class Clock extends React.Component {
@@ -103,7 +103,7 @@ class Clock extends React.Component {
103103

104104
`Clock` giờ sẽ được định nghĩa là một class chứ không còn là một function.
105105

106-
Phương thức `render` sẽ được gọi mỗi khi sự cập nhập xảy ra, nhưng miễn là chúng ta render `<Clock/>` bên trong cùng DOM node, chỉ có duy nhất instance đơn lẻ của class `Clock` sẽ được sử dụng. Điều này làm ta có thể sử dụng thêm các features khác như local state và các phương thức lifecycle
106+
Phương thức `render` sẽ được gọi mỗi khi sự cập nhập xảy ra, nhưng miễn là chúng ta render `<Clock/>` bên trong cùng DOM node, chỉ có duy nhất instance đơn lẻ của class `Clock` sẽ được sử dụng. Điều này làm ta có thể sử dụng thêm các feature khác như local state và các phương thức lifecycle
107107

108108
## Thêm Local State vào Class {#adding-local-state-to-a-class}
109109

@@ -124,7 +124,7 @@ class Clock extends React.Component {
124124
}
125125
```
126126

127-
2) Thêm một [class constructor](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes#Constructor) gán `this.state`: ban đầu:
127+
2) Thêm một [class constructor](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes#Constructor) gán `this.state` ban đầu:
128128

129129
```js{4}
130130
class Clock extends React.Component {
@@ -153,7 +153,7 @@ Lưu ý cách ta truyền `props` vào base contructor
153153
}
154154
```
155155

156-
Thành phần Class nên luôn luôn goi đến base contructor với `props`
156+
Thành phần Class nên luôn luôn gọi đến base contructor với `props`
157157

158158
3) Xóa prop `date` từ thành phần `<Clock />`:
159159

@@ -164,7 +164,7 @@ ReactDOM.render(
164164
);
165165
```
166166

167-
Sau đó chúng ta sẽ truyền timer code trở về component đó.
167+
Sau đó chúng ta sẽ truyền code của bộ hẹn giờ trở về component đó.
168168

169169
Kết quả sẽ trông như sau:
170170

@@ -193,7 +193,7 @@ ReactDOM.render(
193193

194194
[**Thử trên CodePen**](https://codepen.io/gaearon/pen/KgQpJd?editors=0010)
195195

196-
Tiếp theo, chúng ta sẽ cho `Clock` bộ hẹn giờ và tự cập nhập mỗi giây.
196+
Tiếp theo, chúng ta sẽ cho `Clock` một bộ hẹn giờ và tự cập nhập mỗi giây.
197197

198198
## Thêm phương thức Lifecycle vào Class {#adding-lifecycle-methods-to-a-class}
199199

@@ -233,7 +233,7 @@ class Clock extends React.Component {
233233

234234
Những phương thức đặc biệt đó được gọi là "lifecycle methods".
235235

236-
Phương thức `componentDidMount()` chạy sau khi đầu ra component đã được render vào trong DOM. Đây là vị trị thuận lợi để đặt bộ hẹn giờ:
236+
Phương thức `componentDidMount()` chạy sau khi đầu ra component đã được render vào trong DOM. Đây là vị trí thuận lợi để đặt bộ hẹn giờ:
237237

238238
```js{2-5}
239239
componentDidMount() {
@@ -302,20 +302,19 @@ ReactDOM.render(
302302

303303
[**Thử trên Codepen**](https://codepen.io/gaearon/pen/amqdNA?editors=0010)
304304

305-
Giờ đồng hồ sẽ được 'tick' mỗi giây
305+
Giờ đồng hồ sẽ được đếm mỗi giây
306306

307-
Hãy tóm tắt nhanh những gì đã diễn ra và thứ tự các mehthod được gọi:
307+
Hãy tóm tắt nhanh những gì đã diễn ra và thứ tự các method được gọi:
308308

309-
1) Khi `<Clocl/>` được truyền vào `ReactDOM.render()`, React gọi đến contructor của component `Clock`. Kể từ khi `Clock` cần hiển thị thời gian hiện tại, nó khởi tọa `this.state` với một object bao gồm cả thời gian hiện tại. Chúng ta sẽ cập nhập trạng thái này sau đó
309+
1) Khi `<Clock/>` được truyền vào `ReactDOM.render()`, React gọi đến contructor của component `Clock`. Kể từ khi `Clock` cần hiển thị thời gian hiện tại, nó khởi tạo `this.state` với một object bao gồm cả thời gian hiện tại. Chúng ta sẽ cập nhập trạng thái này sau đó
310310

311311
2) React sau đó gọi phương thức render() của component `Clock`. Đây là cách React học(đọc) những gì nên được hiện thị ra màn hình. React sau đó cập nhập DOM để trùng khớp với đầu ra kết xuất(render) của `Clock`
312312

313313
3) Khi đầu ra `Clock` được thêm vào DOM, React gọi đến phương thức lifecycle `componentDidMount`. Bên trong nó, component `Clock` hỏi trình duyệt để cài đặt bộ hẹn giờ để gọi đến phương thức `tick()` của component mỗi lần trong 1 giây
314314

315315
4) Mỗi giây trình duyệt gọi đến phương thức `tick()`. Bên trong nó, component `Clock` lên lịch trình để UI cập nhập bằng cách gọi `setState()` với một object chứa thời gian hiện tại. Nhờ vào `setState()`, React biết răng state đã được thay đổi, và phương thức `render()` được gọi là để học (đọc) cái gì sẽ được in ra màn hình. Thời điểm này, `this.state.date` bên trong phương thức `render()` sẽ khác, vì vậy kết xuất đầu ra sẽ bao gồm thời gian đã được cập nhập. React cập nhập DOM sao phù hợp
316316

317-
5) If the `Clock` component is ever removed from the DOM, React calls the `componentWillUnmount()` lifecycle method so the timer is stopped.
318-
5) Nếu component `Clock` chưa bị xóa khỏi DOM, React gọi đến phương thức `componentWillUnmount()` lifecycle thì bộ hẹn giờ bị dừng lại
317+
5) Nếu component `Clock` chưa bị xóa khỏi DOM, React gọi đến phương thức lifecycle `componentWillUnmount()` thì bộ hẹn giờ bị dừng lại
319318

320319
## Sử dụng state đúng cách {#using-state-correctly}
321320

@@ -339,13 +338,13 @@ this.setState({comment: 'Hello'});
339338

340339
Nơi duy nhất mà bạn có thể gán `this.state` là contructor
341340

342-
### Cập nhập trạng thái có thể là bất đồng bộ {#state-updates-may-be-asynchronous}
341+
### Cập nhập state có thể là bất đồng bộ {#state-updates-may-be-asynchronous}
343342

344-
React có thể call gộp nhiều lệnh gọi `setState()` vào một lần cập nhập để tăng hiệu năng
343+
React có thể gộp nhiều lệnh gọi `setState()` vào một lần cập nhập để tăng hiệu năng
345344

346345
Bởi vì `this.props``this.state` có thể được cập nhập bất đồng bộ, bạn không nên dựa vào giá trị của chúng để tính toán state tiếp theo
347346

348-
Ví dụ, đoạn mã này có thể thất bại để cập nhập counter
347+
Ví dụ, đoạn mã này có thể thất bại để cập nhập counter:
349348

350349
```js
351350
// Wrong
@@ -354,7 +353,7 @@ this.setState({
354353
});
355354
```
356355

357-
Để sửa nó, sử dụng một dạng thứ hai của `setState()` nó nhận một funtion chứ không phải object. Funtion này sẽ nhận state trước đó làm tham số đầu tiên, và props tại thời điểm cập nhập được nhận làm tham sso thứ hai:
356+
Để sửa nó, sử dụng một dạng thứ hai của `setState()` nó nhận một funtion chứ không phải object. Funtion này sẽ nhận state trước đó làm tham số đầu tiên, và props tại thời điểm cập nhập được nhận làm tham số thứ hai:
358357

359358
```js
360359
// Correct
@@ -363,7 +362,7 @@ this.setState((state, props) => ({
363362
}));
364363
```
365364

366-
Ta đã sử dụng [arrow function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions) ở trước, nhưng nó vẫn hoạt động với funtion truyền thống:
365+
Ta đã sử dụng [arrow function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions)đằng trước, nhưng nó vẫn hoạt động với funtion truyền thống:
367366

368367
```js
369368
// Correct
@@ -374,7 +373,7 @@ this.setState(function(state, props) {
374373
});
375374
```
376375

377-
### Cập nhập trạng thái được hợp nhất {#state-updates-are-merged}
376+
### Cập nhập trạng thái được gộp lại {#state-updates-are-merged}
378377

379378
Khi mà bạn gọi `setState()`, React gộp object bạn cung cấp vào state hiện tại
380379

@@ -408,11 +407,11 @@ Sau đó bạn có cập nhập chúng một cách độc lập bằng cách g
408407
}
409408
```
410409

411-
Sự hợp nhất là nông (shallow), nên `this.setState({comments})` chừa lại `this.state.posts` nguyên vẹn, còn `this.state.comments` sẽ hoàn toàn được thay thế bằng value mới.
410+
Sự hợp nhất là nông (shallow), nên `this.setState({comments})` để lại `this.state.posts` nguyên vẹn, còn `this.state.comments` sẽ hoàn toàn được thay thế bằng value mới.
412411

413412
## Dữ liệu chảy từ trên xuống dưới {#the-data-flows-down}
414413

415-
Cả parent và child component, cả hai có thể không hiểu dù component có là stateful hoặc stateless, và chúng sẽ không quan tâm liệu rằng nó được định nghĩa là một function hoặc một class
414+
Parent và child component, cả hai có thể không hiểu dù component có là stateful hoặc stateless, và chúng sẽ không quan tâm liệu rằng nó được định nghĩa là một function hoặc một class
416415

417416
Đó là lý do vì sao state thường xuyên được gọi cục bộ hoặc và được khép kín. Nó không truy cập đến bất cứ component khác ngoài cái mà đang sở hữu và đặt giá trị cho nó
418417

@@ -439,7 +438,7 @@ function FormattedDate(props) {
439438

440439
[**Thử trên CodePen**](https://codepen.io/gaearon/pen/zKRqNB?editors=0010)
441440

442-
Đây được gọi chung là dòng chảy dữ liệu "top-down" hoặc "unidirectional". Bất kỳ state luôn được sở hữu bởi một vài component đặc biệt, và bất cứ dữ liệu hoặc nguồn gốc UI từ state đó có thế ảnh hưởng đến những component "phía dưới" chúng và trong "tree"
441+
Đây được gọi chung là dòng chảy dữ liệu "top-down" hoặc "unidirectional". Bất kỳ state luôn được sở hữu bởi một vài component đặc biệt, và bất cứ dữ liệu hoặc nguồn gốc UI sinh ra từ state có thế ảnh hưởng đến những component "phía dưới" chúng và trong "tree"
443442

444443
Nếu bạn tưởng tượng một "component tree" như một thác nước của những props, mỗi state của component như bổ sung thêm nguồn nước tụ lại tại một điểm nhưng cuối cùng vẫn chảy xuống
445444

0 commit comments

Comments
 (0)