works を配列にして、for でゃなく map を使いましょう。
jsx
1const works = [
2 {img:OOO.png , title:OOOOO , text:OOOO},
3 {img:OOO.png , title:OOOOO , text:OOOO},
4 {img:OOO.png , title:OOOOO , text:OOOO}
5];
6
7const App = () => {
8 return (
9 <div>
10 <h1>My Workd</h1>
11 <ul>
12 {
13 works.map((work, index) =>
14 <li key={work.title}>
15 <img src={work.img} />
16 <div className='title'>{index + 1}. {work.title}</div>
17 <div className='text'>{work.text}</div>
18 </li>
19 )
20 }
21 </ul>
22 </div>
23 );
24};
さらに <li>〜</li> をコンポーネント化します。
jsx
1const Work = ({ work, index }) => {
2 return (
3 <li key={work.title}>
4 <img src={work.img} />
5 <div className='title'>{index + 1}. {work.title}</div>
6 <div className='text'>{work.text}</div>
7 </li>
8 );
9};
10
11const App = () => {
12 return (
13 <div>
14 <h1>My Workd</h1>
15 <ul>
16 {
17 works.map((work, index) => <Work key={index} work={work} index={index} />)
18 }
19 </ul>
20 </div>
21 );
22};
あとは、react-router を入れて作品の詳細ページを SPA で遷移したり、作品がたくさんあればページネーションしたり、作品データを JSON 化して AJAX で取得したりしていけば良いのではないでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/22 01:04