iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
自我挑戰組

從零開始學習React 系列 第 9

Day09 React Props- Array.map()

  • 分享至 

  • xImage
  •  

繼續上一回的React Props-組件屬性,今天用Array.map()方法傳遞數據,將進一步簡化 Cards 組件的傳遞數據,提高 React 應用程序性能。

https://ithelp.ithome.com.tw/upload/images/20210924/201398004l80EyTeAn.png

1.新增一個存放資料的檔案,將資料用陣列方式表示。

const Datas = [
  {
    title : "Steak Meal" ,
    hh3 : "upto 90% off",
    imgsrc:meal,
  } ,
  {
    title: "Hamburger" ,
    hh3:"upto 80% off",
    imgsrc :meal01,
  } ,
  {
    title : "Cookies" ,
    hh3:"upto 78% off",
    imgsrc :meal02,
  } ,
  {
    title : "Ice Cream" ,
    hh3:"upto 70% off",
    imgsrc :meal05,
  } ,
  
]
export default Datas;

2.Card組件不需變更

import React from 'react';

const Card = (props) => {
    return (
        <div>        
         <section className="category" id="category">         
         <div className="box-container">
          <div className="box">
           <h3>{props.title}</h3>
           <p>{props.hh3}</p>
           <img
            src={props.imgsrc}  />
           <a href="" class="btn">Buy now</a>
         </div>
         </div>
         </section>
            
        </div>
    )
}

export default Card

3.在App.js中用map方法簡化程式。

const card =(val)=>{
    return(
      <Card             
             title={val.title}
             hh3={val.hh3}
             imgsrc ={val.imgsrc}           
       />
    )
}

const App = (props) => {
  return (
    <div>
      <Header1 />
      <Header2 />           

    {Datas.map(card)}       
      
    </div>
  )
}

export default App

備註:
Array.map()用法
( https://www.w3schools.com/jsref/jsref_map.asp )


上一篇
Day08 React Props-組件屬性
下一篇
Day10 React Hooks 小實作簡單的計數器
系列文
從零開始學習React 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言