關於node中 require 和 ES6中export 、export default的總結


nodejs中 require 方法的加載規則

方法的加載規則

1. 優先從緩存中加載
2. 核心模塊
3. 路徑形式的模塊
4. 第三方模塊

一、優先從緩存中加載

main.js:執行加載a.js模塊

require ('./a')

a.js:輸出a被加載了 執行加載b.js模塊

console.log('a.js被加載了')

let abd = require('./b')
console.log(abd)

b.js:

console.log('b.js被加載了')
module.exports = {
    a: '小明'
}

結果

C:\Users\Administrator\Desktop\test>node ./main.js
a.js被加載了
b.js被加載了
{ a: '小明' }

二、node 中模塊的加載順序

以 var template = require(‘art-template’) 為例:

1. 先找到當前文件所處目錄中的 node_modules 目錄

2. 然后根據以下方式找到文件中的 main 屬性

3. main 屬性中就記錄了 art-template 的入口模塊

4. 然后加載使用這個第三方包,但是實際上最終加載的還是文件

5. 如果 package.json 文件不存在或者 main 指定的入口模塊是也沒有

6. 則 node 會自動找該目錄下的 index.js,也就是說 index.js 會作為一個默認備選項

7. 如果以上所有任何一個條件都不成立,則會進入上一級目錄中的 node_modules 目錄查找

8. 如果上一級還沒有,則繼續往上上一級查找

9. 如果直到當前磁盤根目錄還找不到,最后報錯: can not find module xxx
第三方模塊尋找順序:  node_modules/art-template	  >    package.json 文件   >   main 屬性 >   index.js

export default 和 export 區別

注意:

1. export與export default均可用於導出常量、函數、文件、模塊等

2. 在一個文件或模塊中,export可以有多個,export default僅有一個

4、在一個模塊中,可以同時使用export default 和export 向外暴露成員

5、使用export向外暴露的成員,只能使用{  }的形式來import,這種形式,叫做【按需導出】,不需要,可以不在{ }中定義

3、export default 向外暴露的成員,可以使用任意變量來接收

7、使用export導出的成員,必須嚴格按照導出時候的名稱,來使用{ }按需接收

8、使用export導出的成員,如果想換個變量名稱接收,可以使用as來起別名

例如

// test.js
let info = {
    name: 'zs',
    age: 20
}
export default info
 
export let title = '小星星'
 
export let content = '哈哈哈'

在main.js中接收,test.js使用export default 和 export 向外暴露的成員

import person, {title, content as content1} from './test.js'
console.log(person)    // 其實就是test.js 中的 info
console.log(title)     // 其實就是test.js 中的 title
console.log(content1)  // 其實就是test.js 中的content 注意對應關系


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM