
在 Vue 框架渲染列表時會有自己的語法 v-for,不過 React 沒有自定義的語法,而是直接使用 JS 的語法
陣列渲染成元素
使用 JS 的 map 把每個 item 渲染出來,組件 Item 需要被代入 key 屬性,
key 必須是唯一值,如陣列改變,才不會再被重新渲染,影響效能
key 如果為 index 也會被重新渲染,只是不會跳出警告,除非沒有唯一值才用 index,或是請後端加上唯一值
List.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import { Component } from "react"; import Item from "./Item"; class List extends Component { render(){ const steps = [ { text: 'hello'}, { text: 'world'}, { text: 'hello world'} ] return( <ul> {steps.map((item, idx) => (<Item key={item.text}>{ item.text }({ idx })</Item>) )} </ul> ) } } export default List;
|
Item.js
1 2 3 4 5 6 7 8 9 10 11
| import { Component } from "react";
class Item extends Component { render(){ return ( <li>{this.props.children}</li> ) } }
export default Item;
|
物件渲染成元素
物件使用 Object.keys
先把物件屬性變成陣列,再使用 map 渲染
物件渲染出來的結果順序不一定相同,如果要照資料排序須將資料改為陣列
List.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| import { Component } from "react"; import Item from "./Item"; class List extends Component { render(){ const dog = { name: 'bobee', age: 12, height: 64 } return( <ul> { Object.keys(dog).map((key) => { const value = dog[key]; return ( <Item key={value}>{key}: {value}</Item> ) }) } </ul> ) } } export default List;
|
🚀線上課程分享
線上課程可以加速學習的時間,省去了不少看文件的時間XD,以下是我推薦的一些課程
想學習更多關於前後端的線上課程,可以參考看看。
Hahow 有各式各樣類型的課程,而且是無限次數觀看,對學生或上班族而言,不用擔心被時間綁住
如果你是初學者,非常推薦六角學院哦!
剛開始轉職也是上了六角的課,非常的淺顯易懂,最重要的是,隨時還有線上的助教幫你解決問題!
Udemy 裡的課程非常的多,品質普遍不錯,且價格都滿實惠的,CP值很高!
也是很多工程師推薦的線上課程網站。