ReactJS: Giới thiệu Lists và keys trong React Mới nhất 2022

image 1 5234

Thủ Thuật về ReactJS: Giới thiệu Lists và keys trong React 2022

READ ALSO

Testnet là gì? Cách làm Testnet những dự án công trình bất Động sản

#### trong Excel là lỗi gì? Cách sửa lỗi #### nhanh gọn và đơn thuần và giản dị nhất

Khái niệm và cách thao tác của List (Danh sách) hay Array (Mảng) trong React tương đương với nhau. Thông thường ta sẽ dùng khái niệm Array nhiều hơn nữa List. Và việc khởi tạo và xử lý Array trong React tương tự như Javascript. Trong nội dung bài viết này, Group sẽ trình làng rõ ràng về Lists và key trong React nhé!

NỘI DUNGGiới thiệu về React listsREAD ALSOGiới thiệu React KeysTại sao ‘key’ lại quan trọng?Tổng kếtGiới thiệu về React lists

Cú pháp khai báo mảng rỗng

Chúng ta trọn vẹn có thể định nghĩa một mảng những tài liệu bao bởi dấu ngoặc vuông [].

Ví dụ, ta khai báo một array chứa title nội dung bài viết, sử dụng hàm map() trong Javascript để duyệt mảng và in ra số lượng component tương ứng với từng thành phần trong array.

function Post(props)
return (


Title: props.post.title

Author: props.post.author

);

class ListPost extends React.Component
constructor(props)
super(props);
this.state =
posts: [

postId: 1,
title: “Lifecycle của một component trong React”,
author: “QuiTran”,
,
postId: 2, title: “Bắt sự kiện trong React”, author: “QuiTran” ,

postId: 3,
title: “Rendering có điều kiện trong React”,
author: “QuiTran”,
,
],
;

render()
var listItems = this.state.posts.map((post) => );
return

;

Kết quả trả về là một component Post cho từng vòng lặp, ta có 3 component Post tương ứng với 3 thành phần trong mảng topic:

Kết quả hiển thị trên trình duyệt

Giới thiệu React Keys

Key giúp React xác lập thành phần nào của mảng bị thay đổi, thêm vào hay xóa đi. Các key được truyền vào những element trong một mảng để chúng có một định danh cố định và thắt chặt (stable identity).

Xét ví dụ sau:

function Developer(props)
return (

I am a props.dev.name and props.dev.age years old and loves” ”
props.dev.skill

);

class ListDeveloper extends React.Component
constructor(props)
super(props);
this.state =
devs: [

name: “Danny”,
age: “23”,
skill: “coding php”,
,

name: “Vivian”,
age: “23”,
skill: “coding javascript”,
,

name: “Todd”,
age: “22”,
skill: “coding java “,
,
],
;

render()
var devList = this.state.devs.map((dev) => );
return

;

Ta sẽ thấy kết quả hiển thị không còn lỗi gì, nhưng hãy bật F12 và mở tab console ta sẽ thấy có warning về key như sau:

Kết quả hiển thị trên trình duyệt

Warning lúc không còn “key”

Để khắc phục warning, ta thêm thuộc tính key vào trong component. Nếu không còn ID cố định và thắt chặt của những thành phần, ta trọn vẹn có thể sử dụng chỉ mục (index) của những thành phần trong mảng để làm một key.

render()
var devList = this.state.devs.map((dev, index) => );
return

;

Nhưng React không khuyến khích sử dụng index để làm key cho element vì thứ tự những thành phần trọn vẹn có thể thay đổi bất thần. Điều này làm tác động đến hiệu suất và trọn vẹn có thể gây ra yếu tố với state của component. Nếu bạn sử dụng eslint, thì sẽ có được warning về quy tắc react/no-array-index-key, ta trọn vẹn có thể tìm hiểu thêm quy tắc tại đây.

Sử dụng index làm key là một anti-pattern trong React. Để tránh sử dụng index làm key, ta trọn vẹn có thể sử dụng bất kì thành phần nào trong mảng mà nó có mức giá trị duy nhất để làm key cho element. Trong ví dụ trên, ta trọn vẹn có thể thêm thuộc tính id vào để phân biệt:

class ListDeveloper extends React.Component
constructor(props)
super(props);
this.state =
devs: [

id: “1”,
name: “Danny”,
age: “23”,
skill: “coding php”,
,

id: “1”,
name: “Vivian”,
age: “23”,
skill: “coding javascript”,
,

id: “2”,
name: “Todd”,
age: “22”,
skill: “coding java “,
,
],
;

render()
var devList = this.state.devs.map((dev, index) => (

));
return

;

Lưu ý: key là giá trị duy nhất, không được trùng nhau

Ví dụ, ta khai báo có 2 id trùng giá trị là “1”, thì ta sẽ nhận được một warning ở console như sau:

Warning khi bị trùng key

Tại sao ‘key’ lại quan trọng?

Xét ví dụ sau:

Sau khi render một list với 2 thẻ

  • , ta muốn thêm vào một trong những thẻ
  • mới như đoạn code bên phải. Nếu không còn thuộc tính key, React sẽ render lại thẻ
      với 3 thẻ
    • mới. Việc này sẽ gây nên ra hiệu suất render kém hơn.

      Để xử lý và xử lý việc đó thì thuộc tính “key” xuất hiện. Ta thêm key vào ví dụ trên như sau:

      • Duke
      • Villanova
      • Connecticut
      • Duke
      • Villanova

      React sẽ sử dụng ‘key’ này để so sánh React DOM, tiếp theo đó trọn vẹn có thể nhận ra những thẻ

    • nào là mới để render. Còn những thẻ
    • nào không thay đổi thì sẽ không còn thay đổi. Điều này giúp tăng hiệu suất. Tăng tốc dộ render rõ rệt riêng với những dự án công trình bất Động sản phức tạp.

      Để tạo một “key” duy nhất thì không hề khó, ta trọn vẹn có thể sử dụng sẵn những property duy nhất của thành phần, hoặc tự tạo ra dãy string duy nhất của riêng mình bằng phương pháp sử dụng thư viện react-uuid.

      Lưu ý: Thuộc tính “key” chỉ để React định danh trên DOM, chúng không được truyền vào những component con như một props. Nghĩa là những component con không đọc giá tốt trị của “props.key”. Nếu ta cần đọc giá trị của key bên trong component thì ta truyền giá trị key đó với tên khác ví như một props. Ví dụ:

      var devList = this.state.devs.map((dev, index) => (

      ));

      Theo ví dụ trên, component sẽ đọc giá tốt trị của key theo phong cách “props.id” chứ không phải là “props.key”.

      Tổng kết

      Khi sử dụng array trong React, ta nên phải có thuộc tính key khi render những element:

      Key là duy nhất, không trùng nhau.Không sử dụng chỉ mục (index) của thành phần làm key.Thuộc tính “key” chỉ để React định danh trên DOM, chúng không được truyền vào những component con như một props.

      Bài viết có tìm hiểu thêm thông tin tại link: https://reactjs.org/docs/lists-and-keys.html

      CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
      Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn, Phường Bến Nghé, Quận 1, Thành phố Hồ Chí MinhVăn phòng đại diện thay mặt thay mặt: 42 Trần Phú, Phường 4, Quận 5, Thành phố Hồ Chí MinhĐiện thoại: 0364 333 333Tổng đài miễn phí: 1800 6734Email: sales@.orgWebsite: www..org

      Tags: Kiến thức Reactjs

      Review ReactJS: Giới thiệu Lists và keys trong React mới nhất?

      Hero đang tìm kiếm từ khóa ReactJS: Giới thiệu Lists và keys trong React 2022-10-29 15:30:51 san sẻ Mẹo Hướng dẫn trong nội dung bài viết một cách Mới Nhất.
      #ReactJS #Giới #thiệu #Lists #và #keys #trong #React ReactJS: Giới thiệu Lists và keys trong React
      ===> Nếu bạn có thắc mắc hay yếu tố gì nội dung bài viết trọn vẹn có thể để lại phản hồi cuối bài nhé.

  • Exit mobile version