React triển khai hệ thống DOM độc lập với trình duyệt để có hiệu suất và khả năng tương thích giữa các trình duyệt. Chúng tôi đã nhân cơ hội này để dọn sạch một số góc cạnh thô trong quá trình triển khai DOM của trình duyệt
Trong React, tất cả thuộc tính và thuộc tính DOM [bao gồm cả trình xử lý sự kiện] phải là camelCased. Ví dụ, thuộc tính HTML
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
1 tương ứng với thuộc tính const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
2 trong React. Ngoại lệ là các thuộc tính const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
3 và const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
0, các thuộc tính này phải được viết thường. Ví dụ: bạn có thể giữ const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
1 là const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
1Sự khác biệt trong thuộc tính
Có một số thuộc tính hoạt động khác nhau giữa React và HTML
đã kiểm tra
Thuộc tính
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
3 được hỗ trợ bởi các thành phần const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
4 kiểu const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
5 hoặc const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
6. Bạn có thể sử dụng nó để đặt xem thành phần có được kiểm tra hay không. Điều này hữu ích cho việc xây dựng các thành phần được kiểm soát. const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
7 là giá trị tương đương không được kiểm soát, đặt xem thành phần có được kiểm tra khi nó được gắn lần đầu hay khôngtên lớp
Để chỉ định một lớp CSS, hãy sử dụng thuộc tính
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
8. Điều này áp dụng cho tất cả các phần tử DOM và SVG thông thường như const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
9, const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
00 và các phần tử khácNếu bạn sử dụng Phản ứng với các Thành phần Web [không phổ biến], hãy sử dụng thuộc tính
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
01 để thay thếnguy hiểmSetInnerHTML
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
02 là sự thay thế của React cho việc sử dụng const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
03 trong trình duyệt DOM. Nói chung, việc đặt HTML từ mã là rủi ro vì rất dễ khiến người dùng của bạn vô tình bị tấn công bằng tập lệnh chéo trang [XSS]. Vì vậy, bạn có thể đặt HTML trực tiếp từ React, nhưng bạn phải nhập const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
02 và chuyển một đối tượng bằng phím const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
05, để nhắc nhở bản thân rằng điều đó nguy hiểm. Ví dụconst divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
6htmlDành cho
Vì
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
06 là một từ dành riêng trong JavaScript, nên các phần tử React sử dụng const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
07 để thay thếonChange
Sự kiện
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
08 hoạt động như bạn mong đợi. bất cứ khi nào một trường biểu mẫu được thay đổi, sự kiện này sẽ được kích hoạt. Chúng tôi cố ý không sử dụng hành vi trình duyệt hiện có vì const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
08 là cách gọi sai cho 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đã chọn
Nếu bạn muốn đánh dấu một
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
10 là đã chọn, hãy tham khảo giá trị của tùy chọn đó trong const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
11 của const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
12 để thay thế. Kiểm tra “The select Tag” để được hướng dẫn chi tiếtPhong cách
Ghi chú
Một số ví dụ trong tài liệu sử dụng
13 để thuận tiện, nhưng việc sử dụng thuộc tínhconst divStyle = { color: 'blue', backgroundImage: 'url[' + imgUrl + ']', }; function HelloWorldComponent[] { return Hello World!; }
13 làm phương tiện chính của các thành phần kiểu dáng thường không được khuyến nghị. Trong hầu hết các trường hợp, nên sử dụngconst divStyle = { color: 'blue', backgroundImage: 'url[' + imgUrl + ']', }; function HelloWorldComponent[] { return Hello World!; }
8 để tham chiếu các lớp được xác định trong biểu định kiểu CSS bên ngoài.const divStyle = { color: 'blue', backgroundImage: 'url[' + imgUrl + ']', }; function HelloWorldComponent[] { return Hello World!; }
13 thường được sử dụng nhất trong các ứng dụng React để thêm các kiểu được tính toán động vào thời điểm kết xuất. Xem thêm Câu hỏi thường gặp. Tạo kiểu và CSSconst divStyle = { color: 'blue', backgroundImage: 'url[' + imgUrl + ']', }; function HelloWorldComponent[] { return Hello World!; }
Thuộc tính
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
13 chấp nhận đối tượng JavaScript có thuộc tính camelCased thay vì chuỗi CSS. Điều này phù hợp với thuộc tính DOM const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
13 JavaScript, hiệu quả hơn và ngăn chặn các lỗ hổng bảo mật XSS. Ví dụconst divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
Lưu ý rằng các kiểu không được tự động thêm tiền tố. Để hỗ trợ các trình duyệt cũ hơn, bạn cần cung cấp các thuộc tính kiểu tương ứng
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
0Các khóa kiểu là camelCased để nhất quán với việc truy cập các thuộc tính trên các nút DOM từ JS [e. g.
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
19]. Tiền tố của nhà cung cấp khác với const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
30 phải bắt đầu bằng chữ in hoa. Đây là lý do tại sao const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
31 có chữ hoa “W”React sẽ tự động thêm hậu tố “px” vào một số thuộc tính kiểu nội tuyến số. Nếu bạn muốn sử dụng các đơn vị khác ngoài “px”, hãy chỉ định giá trị dưới dạng chuỗi với đơn vị mong muốn. Ví dụ
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
1Tuy nhiên, không phải tất cả các thuộc tính kiểu đều được chuyển đổi thành chuỗi pixel. Một số cái vẫn không có đơn vị [ví dụ:
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
32, const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
33, const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
34]. Một danh sách đầy đủ các thuộc tính không có đơn vị có thể được nhìn thấy ở đâytriệt tiêu Nội dungCó thể chỉnh sửaCảnh báo
Thông thường, có một cảnh báo khi một phần tử có con cũng được đánh dấu là
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
35, vì nó sẽ không hoạt động. Thuộc tính này chặn cảnh báo đó. Không sử dụng cái này trừ khi bạn đang xây dựng một thư viện như Bản nháp. js quản lý const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
35 theo cách thủ côngtriệt tiêuHydrationCảnh báo
Nếu bạn sử dụng kết xuất React phía máy chủ, thông thường sẽ có cảnh báo khi máy chủ và máy khách hiển thị nội dung khác nhau. Tuy nhiên, trong một số trường hợp hiếm hoi, rất khó hoặc không thể đảm bảo kết quả khớp chính xác. Ví dụ: dấu thời gian dự kiến sẽ khác nhau trên máy chủ và trên máy khách
Nếu bạn đặt
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
37 thành const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
38, React sẽ không cảnh báo bạn về sự không khớp trong thuộc tính và nội dung của phần tử đó. Nó chỉ hoạt động ở độ sâu một tầng và được dùng làm cửa thoát hiểm. Đừng lạm dụng nó. Bạn có thể đọc thêm về hydrat hóa trong tài liệu const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
39giá trị
Thuộc tính
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
11 được hỗ trợ bởi các thành phần const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
4, const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
12 và const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
73. Bạn có thể sử dụng nó để đặt giá trị của thành phần. Điều này hữu ích cho việc xây dựng các thành phần được kiểm soát. const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
74 là giá trị tương đương không được kiểm soát, đặt giá trị của thành phần khi nó được gắn lần đầu tiênTất cả các thuộc tính HTML được hỗ trợ
Kể từ React 16, mọi thuộc tính DOM tiêu chuẩn hoặc tùy chỉnh đều được hỗ trợ đầy đủ
React luôn cung cấp API tập trung vào JavaScript cho DOM. Vì các thành phần React thường có cả props tùy chỉnh và liên quan đến DOM, nên React sử dụng quy ước
const divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
75 giống như API DOMconst divStyle = {
color: 'blue',
backgroundImage: 'url[' + imgUrl + ']',
};
function HelloWorldComponent[] {
return Hello World!;
}
3Các đạo cụ này hoạt động tương tự như các thuộc tính HTML tương ứng, ngoại trừ các trường hợp đặc biệt được nêu ở trên