iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
Modern Web

我轉生成前端貓咪踏入React地獄的那些事系列 第 13

Day13 JavaScript 模組(Modules)

  • 分享至 

  • xImage
  •  

模組系統的概念大致上分兩種寫法,CommonJS 和 ESM 其引入方式的差異分別是require 和 import,今天會著重在ESM的寫法。

模組的概念其實在React框架已經不知不覺地被頻繁的使用了,像是最常見的hook--useState就是在引入模組的時候才做使用的,又或是元件的寫法也是由模組系統做延伸。

模組基本上可以分為兩種匯出方式命名匯出(Named Exports)和預設匯出(Default Exports),其對應的匯入方式也有所差別

命名匯出(Named Exports)

命名匯出使用關鍵詞 "export" 加上 "要輸出東西的名稱" ,好處是在於同一個檔案能使用很多個匯出

export function add(a, b) {
  return a + b;
}

export function subtract(a, b) {
  return a - b;
}

其對應的匯入方式如下,import 模組,然後從哪裡from

import { add, subtract } from './math';

console.log(add(5, 3));      // 輸出: 8
console.log(subtract(10, 4)); // 輸出: 6

預設匯出(Default Exports)

1.預設匯出使用關鍵詞 ==export default==,特別注意同一個檔案只能有一個預設匯出

export default function add(a, b) {
  return a + b;
}

其對應的匯入方式如下,與上述雷同差別在於針對單一輸出的模組所以可以不用大括弧{}

import add from './math';

console.log(add(5, 3)); // 輸出: 8

總結

以下簡單整理一個表格,我自己會認為不太需要花時間去記憶,因為用久自然就熟了,而且現在套件的幫助下其實也比較不太會在這方面出差錯。

特性 命名匯出 (Named Exports) 預設匯出 (Default Export)
匯出方式 可以匯出多個具名功能 只能匯出一個默認功能
匯入的語法 使用 {} 語法進行匯入 直接使用模組名稱進行匯入

上一篇
Day12 其餘運算子 & 展開運算子(Spread Operator & Rest Operator)
下一篇
Day14 同步&非同步(Synchronous & Asynchronous)
系列文
我轉生成前端貓咪踏入React地獄的那些事25
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言