You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/docs/reference-dom-elements.md
+13-13Lines changed: 13 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ Có một vài thuộc tính hoạt động khác biệt giữa React và HTML:
24
24
25
25
### checked {#checked}
26
26
27
-
Thuộc tính `checked` được hỗ trợ bởi các component `<input>` với kiểu `checkbox` hoặc `radio`. Bạn có thể dùng nó để thiết lập cho component có được checked hay chưa. Điều này hữu ích khi xây dựng những component kiểm soát, xem mục Component Kiểm Soát để biết thêm. `defaultChecked`được dùng để đặt giá trị ban đầu của input, được dùng để tạo những Component Không Kiểm Soát.
27
+
Thuộc tính `checked` được hỗ trợ bởi các component `<input>` với kiểu `checkbox` hoặc `radio`. Bạn có thể dùng nó để thiết lập cho component có được checked hay chưa. Điều này hữu ích khi xây dựng những Component Kiểm Soát. `defaultChecked`là giá trị không kiểm soát, nó sẽ quyết định component có được chọn hay không khi nó được mount lần đầu tiên.
28
28
29
29
### className {#classname}
30
30
@@ -34,7 +34,7 @@ Nếu bạn sử dụng React với Web Components (trường hợp không phổ
`dangerouslySetInnerHTML` tương đương với `innerHTML` trong DOM. Nhìn chung, việc thay đổi DOM từ Javascript nguy hiểm do mình có thể vô tình để người dùng bị tấn công bởi[cross-site scripting (XSS)](https://en.wikipedia.org/wiki/Cross-site_scripting). Vì vậy, React có thể tạo HTML trực tiếp, nhưng bạn phải sử dụng `dangerouslySetInnerHTML` và truyền một object với key là `_html` để nhăc bạn nhớ rằng điều này không an toàn. Ví dụ:
37
+
`dangerouslySetInnerHTML` tương đương với `innerHTML` trong DOM. Nhìn chung, việc thay đổi DOM từ Javascript khá rủi ro do nó có thể vô tình để lộ người dùng [cross-site scripting (XSS)](https://en.wikipedia.org/wiki/Cross-site_scripting). Vì vậy, React có thể tạo HTML trực tiếp, nhưng bạn phải sử dụng `dangerouslySetInnerHTML` và truyền một object với key là `_html` để nhăc bạn nhớ rằng điều này không an toàn. Ví dụ:
38
38
39
39
```js
40
40
functioncreateMarkup() {
@@ -52,19 +52,19 @@ Do `for` là một từ khoá trong Javascript, React dùng `htmlFor`.
52
52
53
53
### onChange {#onchange}
54
54
55
-
Sự kiện `onChange` hoạt động đúng như tên gọi của nó: khi một giá trị của trường mẫu bị thay đổi, sự kiện này được phát ra. Chúng tôi cố tình không sử dụng hành vi của trình duyệt bởi vì `onChange` được hiểu sai co hành vi của nó và React dựa vào sự kiện này để xử lý đầu vào của người dùng trong thời gian thực.
55
+
Sự kiện `onChange` hoạt động đúng như tên gọi của nó: khi một giá trị của trường mẫu bị thay đổi, sự kiện này được phát ra. Chúng tôi cố tình không sử dụng hành vi của trình duyệt bởi vì `onChange` được hiểu sai bởi chính hành vi của nó và React dựa vào sự kiện này để xử lý đầu vào của người dùng trong thời gian thực.
56
56
57
57
### selected {#selected}
58
58
59
-
Thuộc tính `selected` được sử dụng trong `<option>` để đánh dấu option nào được chọn trong một `<select>` cho những Component Kiểm Soát.
59
+
Thuộc tính `selected` được sử dụng trong `<option>` để đánh dấu option nào được chọn trong một `<select>`. Điều này hữu ích khi tạo ra các Component Kiểm Soát.
60
60
61
61
### style {#style}
62
62
63
63
>Lưu ý
64
64
>
65
-
>Một vài ví dụ trong tài liệu này sử dụng `style` cho tiện, thực tế **sử dụng thuộc tính `style`tại chỗ không được khuyến khích .** Trong đa số các trường hợp, [`className`](#classname) nên được dùng cùng với một file CSS rời để style. Thuộc tính `style` thường được dùng trong React để style động ví dụ như người dùng thay đổi màu hoặc font-size bằng một input. Xem thêm [FAQ: Styling and CSS](/docs/faq-styling.html).
65
+
>Một vài ví dụ trong tài liệu này sử dụng `style` cho tiện, thực tế **sử dụng thuộc tính `style`trực tiếp không được khuyến khích .** Trong đa số các trường hợp, [`className`](#classname) nên được dùng cùng với một file CSS rời để style. Thuộc tính `style` thường được dùng trong React để trỏ tới những class được định nghiã ở stylesheet css bên ngoài. Xem thêm [FAQ: Styling and CSS](/docs/faq-styling.html).
66
66
67
-
Thuộc tính `style` nhận vào một object với các thuộc tính CSS ở dạng camelCase thay vì một chuỗi CSS. Nó sẽ nhất quán với key của object trong Javascript, hiệu quả hơn và đề phòng những lỗ hỗng bảo mật XSS. Ví dụ:
67
+
Thuộc tính `style` nhận vào một object với các thuộc tính CSS ở dạng camelCase thay vì một chuỗi CSS. Nó sẽ nhất quán với thuộc tính `style` của Javascript trên DOM, hiệu quả hơn và đề phòng những lỗ hỗng bảo mật XSS. Ví dụ:
68
68
69
69
```js
70
70
constdivStyle= {
@@ -82,17 +82,17 @@ Nhớ rằng styles không tự động thêm tiền tố. Để tương thích
82
82
```js
83
83
constdivStyle= {
84
84
WebkitTransition:'all', // nhớ là chữ 'W' được viết hoa
85
-
msTransition:'all'// 'ms' là tiếp đầu ngữ duy nhất được viết thường
85
+
msTransition:'all'// 'ms' là tiền tố duy nhất được viết thường
86
86
};
87
87
88
88
functionComponentWithTransition() {
89
89
return<div style={divStyle}>This should work cross-browser</div>;
90
90
}
91
91
```
92
92
93
-
Các thuộc tính css được camelCase để đồng nhất với Javascript, ví dụ `node.style.backgroundImage`. Các tiếp đầu ngữ[ngoài `ms`](https://www.andismith.com/blogs/2012/02/modernizr-prefixed/) phải được bắt đầu bằng một chữ hoa ví dụ như `WebkitTransition`.
93
+
Các từ khoá style được viết theo dạng camelCase để đồng nhất với việc truy cập các thuộc tính trên DOM từ Javascript, ví dụ `node.style.backgroundImage`. Các tiền tố[ngoài `ms`](https://www.andismith.com/blogs/2012/02/modernizr-prefixed/) phải được bắt đầu bằng một chữ hoa ví dụ như `WebkitTransition`.
94
94
95
-
React sẽ tự động thêm hệu tố "px" vào sau một vài kiểu thuộc tính số inline nhất định. Nếu bạn muốn sử dụng đơn vị khác, hãy chỉ định giá trị như là một chuỗi với đơn vị bạn muốn, ví dụ:
95
+
React sẽ tự động thêm hậu tố "px" vào sau một vài kiểu thuộc tính số inline nhất định. Nếu bạn muốn sử dụng đơn vị khác ngoài 'px', hãy thêm đơn vị mong muốn dưới dạng chuỗi, ví dụ:
96
96
97
97
```js
98
98
// Result style: '10px'
@@ -126,17 +126,17 @@ Thuộc tính `value` được hỗ trợ bởi những component `<input>` và
126
126
127
127
Trong React 16, [tất cả](/blog/2017/09/08/dom-attributes-in-react-16.html) thuộc tính DOM đều được hỗ trợ.
128
128
129
-
React đã luôn được viết với Javascript làm trọng tâm nên hầu hết các thuộc tính DOM đều được viết ở dạng `camelCase`tương tự như DOM API. Ví dụ như:
129
+
React luôn cung cấp một API với trọng tâm là javascript cho DOM. Bời vì những React component thường nhận những props được tuỳ chỉnh hoặc có liên quan tới DOM, React sử dụng quy ước `camelCase`như là các DOM APIs. Ví dụ như:
130
130
131
131
```js
132
132
<div tabIndex="-1"/>// tương tự node.tabIndex DOM API
133
133
<div className="Button"/>// tương tự node.className DOM API
134
134
<input readOnly={true} />// tương tự node.readOnly DOM API
135
135
```
136
136
137
-
Những thuộc tính này gần giống với thuộc tính HTML, với những ngoại lệ liệt kê ở trên.
137
+
Những thuộc tính này hoạt động tương tự với thuộc tính HTML, với những ngoại lệ liệt kê ở trên.
138
138
139
-
Một vài thuộc tính DOM dc React hỗ trợ như:
139
+
Một vài thuộc tính DOM được React hỗ trợ như:
140
140
141
141
```
142
142
accept acceptCharset accessKey action allowFullScreen alt async autoComplete
Copy file name to clipboardExpand all lines: content/docs/reference-events.md
+11-11Lines changed: 11 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -6,13 +6,13 @@ layout: docs
6
6
category: Reference
7
7
---
8
8
9
-
Tìa liệu này nhằm giải thích `SyntheticEvent` trong Hệ thống Event của React. Xem [Handling Events](/docs/handling-events.html) để biết thêm chi tiết.
9
+
Tài liệu này nhằm giải thích `SyntheticEvent` trong Hệ thống Event của React. Xem [Handling Events](/docs/handling-events.html) để biết thêm chi tiết.
10
10
11
11
## Tổng quan {#overview}
12
12
13
-
Các hàm xử lý sự kiện sẽ được truyền vào một instance của `SyntheticEvent` (một lớp bọc các event để triệt tiêu sự khác nhau về event của các trình duyệt). No có giao diện (interface) tương tự như một event của trình duyệt, bao gồm `stopPropagation()`, và `preventDefault()` và hoạt động giống nhau cho mọi trình duyệt.
13
+
Các hàm xử lý sự kiện sẽ được truyền vào một instance của `SyntheticEvent` (một lớp bọc các event để triệt tiêu sự khác nhau về event của các trình duyệt). Nó có giao diện (interface) tương tự như một event của trình duyệt, bao gồm `stopPropagation()`, và `preventDefault()` và hoạt động giống nhau trên mọi trình duyệt.
14
14
15
-
Nếu bạn cần lấy event thật từ trình duyệt vì một lý do nào đó, chỉ cần sử dụng thuộc tính `nativeEvent` là được. Mọi `SyntheticEvent` object đều có những thuộc tính sau:
15
+
Nếu bạn cần lấy event từ trình duyệt vì một lý do nào đó, chỉ cần sử dụng thuộc tính `nativeEvent` là được. Mọi `SyntheticEvent` object đều có những thuộc tính sau:
16
16
17
17
```javascript
18
18
boolean bubbles
@@ -37,9 +37,9 @@ string type
37
37
38
38
### Gộp Event {#event-pooling}
39
39
40
-
Một `SyntheticEvent` sẽ được gộp lại nghĩa là event object sẽ được sử dụng lại và tất cả thuộc tính trong object đó sẽ bị gán null sau khi hàm xử lý event chạy xong.
40
+
Một `SyntheticEvent` sẽ được gộp lại nghĩa là `SyntheticEvent` object sẽ được sử dụng lại và tất cả thuộc tính trong object đó sẽ bị gán null sau khi hàm xử lý event chạy xong.
41
41
Việc làm này nhằm tăng hiệu suất.
42
-
Vì vậy, bạn không thể dùng event object một cách asynchronous. Ví dụ:
42
+
Vì vậy, bạn không thể dùng truy cập sự kiện theo phương pháp không đồng bộ. Ví dụ:
43
43
44
44
```javascript
45
45
functiononClick(event) {
@@ -55,7 +55,7 @@ function onClick(event) {
55
55
// Không chạy. this.state.clickEvent sẽ là một object có tất cả thuộc tính null.
56
56
this.setState({clickEvent:event});
57
57
58
-
// Bạn vẫn có thể giữ thuộc tính đó do nó là primitive.
58
+
// Bạn vẫn có thể truy xuất các thuộc tính của event.
59
59
this.setState({eventType:event.type});
60
60
}
61
61
```
@@ -179,7 +179,7 @@ Tên Event:
179
179
onChange onInput onInvalid onSubmit
180
180
```
181
181
182
-
Xem thêm thông tin về Form Event ở[Forms](/docs/forms.html).
182
+
Xem thêm thông tin về onChange event[Forms](/docs/forms.html).
Event `onMouseEnter` và `onMouseLeave`lan ra từ element được rời đi và không có capture.
196
+
Event `onMouseEnter` và `onMouseLeave`phát ra từ element được rời đi tới element được đi vào thay vì bubble như bình thường và không có giai đoạn capture.
Event `onPointerEnter` và `onPointerLeave`lan ra từ element được rời đi và không có capture.
228
+
Event `onPointerEnter` và `onPointerLeave`phát ra từ element được rời đi tới element được đi vào thay vì bubble như bình thường và không có giai đoạn capture.
229
229
230
230
Thuộc tính:
231
231
@@ -246,9 +246,9 @@ boolean isPrimary
246
246
247
247
Lưu ý về hỗ trợ trình duyệt
248
248
249
-
Pointer events chưa được hỗ trợ trong tất cả trình duyệt (tại thời điểm viết bài này, những trình duyệt được hỗ trợ: Chrome, Firefox, Edge, and Internet Explorer)). React không cố để polyfill cho những trình duyệt khác vì nó sẽ làm `react-dom`anng85 hơn rất nhiều.
249
+
Pointer events chưa được hỗ trợ trong tất cả trình duyệt (tại thời điểm viết bài này, những trình duyệt được hỗ trợ: Chrome, Firefox, Edge, and Internet Explorer)). React không cố để polyfill cho những trình duyệt khác vì nó sẽ làm tăng dung lượng `react-dom`một cách đáng kể.
250
250
251
-
Nếu bạn cần pointer event, chúng tôi khuyến khích thêm polyfill cho nó.
251
+
Nếu bạn cần pointer event, chúng tôi khuyến khích sử dụng pointer event polyfill từ bên thứ ba cho nó.
0 commit comments