筆者開始學習Javascript的時候,對模組不太懂,不知道怎麼匯入模組,匯出模組,就胡亂一通試
比如 import xx from 'test.js'
不起作用,就加個括號 import {xx} from 'test.js'
反正總是靠蒙,總有一種寫法是對的,其實還是沒有理解,還是不懂
尤其是在當初寫 www.helloworld.net
網站的時候,一遇到這種問題,就懵逼了,尤其是引入第三方庫的時候
這種情況下更多,此篇文章也是為了怕以後忘記,自查用的,也希望能幫助更多的朋友,此篇文章只是針對ES6的模組相關知識
我們知道,JS 模組匯入匯出,使用 import
, export
這兩個關鍵字
也就是說使用 export 匯出一個模組之後,其它檔案就可以使用 import 匯入相應的模組了
下面我們具體看看, import 和 export 到底怎麼用?怎麼匯出模組(比如變數,函數,類,物件等)
//a.js 匯出一個變數,語法如下
export var site = "www.helloworld.net"
//b.js 中使用import 匯入上面的變數
import { site } from "/.a.js" //路徑根據你的實際情況填寫
console.log(site) //輸出: www.helloworld.net
上面的例子是匯出單個變數,那麼如何匯出多個變數呢
//a.js 中定義兩個變數,並匯出
var siteUrl="www.helloworld.net"
var siteName="helloworld開發者社群"
//將上面的變數匯出
export { siteUrl ,siteName }
// b.js 中使用這兩個變數
import { siteUrl , siteName } from "/.a.js" //路徑根據你的實際情況填寫
console.log(siteUrl) //輸出: www.helloworld.net
console.log(siteName) //輸出: helloworld開發者社群
匯出函數和匯出變數一樣,需要新增{ }
//a.js 中定義並匯出一個函數
function sum(a, b) {
return a + b
}
//將函數sum匯出
export { sum }
//b.js 中匯入函數並使用
import { sum } from "/.a.js" //路徑根據你的實際情況填寫
console.log( sum(4,6) ) //輸出: 10
js中一切皆物件,所以物件一定是可以匯出的,並且有兩種寫法
使用 export default
關鍵字彙出,如下
//a.js 中,定義物件並匯出, 注意,使用export default 這兩個關鍵字彙出一個物件
export default {
siteUrl:'www.helloworld.net',
siteName:'helloworld開發者社群'
}
//b.js 中匯入並使用
import obj from './a.js' //路徑根據你的實際情況填寫
console.log(obj.siteUrl) //輸出:www.helloworld.net
console.log(obj.siteName) //輸出:helloworld開發者社群
同樣是使用export default
關鍵字,如下
//a.js 中定義物件,並在最後匯出
var obj = {
siteUrl:'www.helloworld.net',
siteName:'helloworld開發者社群'
}
export default obj //匯出物件obj
//b.js 中匯入並使用
import obj from './a.js' //路徑根據你的實際情況填寫
console.log(obj.siteUrl) //輸出:www.helloworld.net
console.log(obj.siteName) //輸出:helloworld開發者社群
匯出類與上面的匯出物件類似,同樣是用 export default
關鍵字,同樣有兩種寫法
//a.js 中定義一個類並直接匯出
export default class Person {
//類的屬性
site = "www.helloworld.net"
//類的方法
show(){
console.log(this.site)
}
}
//b.js 中匯入並使用
//匯入類
import Person from './a.js'
//建立類的一個物件person
let person = new Person()
//呼叫類的方法
person.show() //輸出:www.helloworld.net
//a.js 中定義一個類,最後匯出
class Person {
//類的屬性
site = "www.helloworld.net"
//類的方法
show(){
console.log(this.site)
}
}
//匯出這個類
export default Person
//b.js 中匯入並使用
//匯入類
import Person from './a.js'
//建立類的一個物件person
let person = new Person()
//呼叫類的方法
person.show() //輸出:www.helloworld.net
下面我們簡單總結一下
export
與export default
的區別
對於 import
,export
, export default
,他們的用法上面的例子已經很詳細的列出了,忘記的時候,可以當作參考看看
最重要的還是要明白為什麼要這麼寫,實在不明白記住就行了。