首頁>Program>source

我有两个檔案,第一个是todoHelper.js

它有 export const addTodo = (list, item) => [...list, item]

後来我想使用 addTodo 在另一个檔案中,我只是做 import {addTodo} from './todoHelpers'

但是我也看到人们在預設情况下執行匯出而不只是匯出.有什麼區別?

最新回復
  • 5月前
    1 #

    每个檔案只能有一个匯出預設值,因此当您像這樣匯出預設值時

    export default AddTodo = (list, item) => [...list, item]
    

    您可以像匯入

    import MyAddTodo from './todoHelpers'
    

    由於babel知道您正在尝試訪問預設元件,因此可以使用任何名稱在檔案中訪問它

    現在假設您這樣做

    export const AddTodo = (list, item) => [...list, item]
    

    您的檔案中可以有多个這樣的匯出檔案,例如

    export const AddTodo =(列表,專案)=>[...列表,專案] 匯出const DeleteTodo =(列表,專案)=>[...列表,專案]

    当您匯入時,您將需要對它们进行解構

    import {AddTodo, DeleteTodo}from './todoHelpers'
    

    現在,由於您有多个此類匯出,因此babel將不知道您要訪問的是哪个元件(如果您使用其他名稱,如

    )訪問
    import {MyAddTodo, MyDeleteTodo}from './todoHelpers'
    

    如果要執行此操作,則必须按原樣匯入它们,並且它们会更改其名稱,例如

    import {AddTodo as MyAddTodo, DeleteTodo as MyDeleteTodo}from './todoHelpers'
    

    因此,按照常規做法,您会 default export 主要元件,其餘元件可以正常匯出,或者只有一个元件需要从檔案中匯出時,則可以選擇所需的任何元件,但是不錯的方法是 export

  • 5月前
    2 #

    將default關鍵字与export一起使用可让我们自由使用別名匯入

    export default k // in file my.js
    

    可以使用別名" b"匯入

    import b from 'my.js'
    

相似問題

  • c++:使用float会匯致"對過載函式的呼叫不明確"錯誤
  • c++:从" const char *"到" char"的無效轉換