iT邦幫忙

2022 iThome 鐵人賽

0
自我挑戰組

30 天線上自學前端系列 第 34

[Day 34] [React] React components 簡單介紹 (上)

  • 分享至 

  • xImage
  •  

為什麼要用 components ?

如果沒有用 components 的話,幾個簡單的功能全部放在同一個 js 檔案裡會變成超級多行,讓人難以看懂程式碼的原意。

所以 components 讓我們得以把超大一個檔案或是複雜的網頁架構變成較小的幾個 components。

再來是因為已經分成好幾個小 components 了,若是有重複的功能,我們也可以在不同的地方重複使用這些 components。


這是還沒有 components 或任何 function 的樣子:

ReactDOM.render(
  <div>
    <h1>My Favourite Foods</h1>
    <ul>
      <li>Bacon</li>
      <li>Jamon</li>
      <li>Noodles</li>
    </ul>
  </div>,
  document.getElementById("root")
);

老師的介紹是先把 <h1> 在同一個檔案裡面變成 components:

function Heading(){
  return <h1>My Favourite Foods from function</h1>
}

ReactDOM.render(
  <div>
    <Heading></Heading>
    <ul>
      <li>Bacon</li>
      <li>Jamon</li>
      <li>Noodles</li>
    </ul>
  </div>,
  document.getElementById("root")
);

所以我們目前可以知道,在這邊用 HTML tag 就可以將 components 叫出來。這邊也可以用 <Heading/> 來取代 <Heading></Heading>


再來是將 components 分成檔案,集中在某個資料夾的做法。

首先是創一個資料夾叫 components,然後把想要拆開的 components 用檔案分開。這邊一樣是先用 <h1> 當範例。

Heading.jsx:

import React from "react";

/* 先 import React 所以我們才能用 JSX 來寫想要的程式碼。

function Heading() {
  return <h1>My Favourite Foods</h1>;
}

export default Heading;

再來要解決的事是如何讓 index.js 檔案用 Heading.jsx 的程式碼呢?

我們可以用 ES6 import 和 export 功能。在我們想要使用的 component 檔案裡面,加入 export default Heading; 。另外這邊我們不在 Heading 後面加括號 (),因為這會讓它馬上就被執行:

import React from "react";

function Heading() {
  return <h1>My Favourite Foods</h1>;
}

export default Heading;

再來回到 index.js,告訴它我們在其他地方有 components:

import App from "./components/App";

上一篇
[Day 33] [React] React Styling 練習
下一篇
[Day 35] [React] React components 簡單介紹 (下)
系列文
30 天線上自學前端72
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言