JavaScript 動態匯入

了解 JavaScript 的這個新功能 直到最近,我才有幸使用動態匯入,當時我在一個 Next.js 應用程式中使用它們來分割程式碼,並且我必須進行一些研究,因為它們與靜態匯入有些不同。 一個 ES 模組的靜態匯入(預設匯出)的寫法如下: import moment from 'moment' 你可以使用物件解構的方式來取得命名匯出: import { format } from 'date-fns' 靜態匯入有一些限制: 它們限制在檔案的頂層 它們不能在條件判斷(if)內被載入 套件名稱無法在執行時決定 動態匯入可以做到所有這些事情! 它們的語法略有不同。 並且它們可以在模組內使用。 使用方式如下: const module = await import('module') 而要使用預設匯出,則必須先呼叫 .default()。 以 moment 為例的範例: const moment = (await import('moment')).default() 相反地,命名匯入的使用方式與預期相同: const { format } = await import('date-fns') 你能夠立即使用它們嗎?可以!瀏覽器支援已經相當不錯,並且還有一個Babel 插件可用。