您好,登錄后才能下訂單哦!
這篇文章主要介紹“ES6中怎么使用module”,在日常操作中,相信很多人在ES6中怎么使用module問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ES6中怎么使用module”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
這是一份備忘單,展示了不同的導出方式和相應的導入方式。它實際上可分為3種類型:名稱,默認值和列表 ?
// 命名導入/導出 export const name = 'value' import { name } from '...' // 默認導出/導入 export default 'value' import anyName from '...' // 重命名導入/導出 export { name as newName } import { newName } from '...' // 命名 + 默認 | Import All export const name = 'value' export default 'value' import * as anyName from '...' // 導出列表 + 重命名 export { name1, name2 as newName2 } import { name1 as newName1, newName2 } from '...'
接下來,我們來一個一個的看
命名方式
這里的關鍵是要有一個name。
export const name = 'value'; import { name } from 'some-path/file'; console.log(name); // 'value'
默認方式
使用默認導出,不需要任何名稱,所以我們可以隨便命名它?
export default 'value' import anyName from 'some-path/file' console.log(anyName) // 'value'
默認方式不用變量名
export default const name = 'value'; // 不要試圖給我起個名字!
命名方式 和 默認方式 一起使用命名方式 和 默認方式 可以同個文件中一起使用?
eport const name = 'value' eport default 'value' import anyName, { name } from 'some-path/file'
導出列表
第三種方式是導出列表(多個)
const name1 = 'value1' const name2 = 'value2' export { name1, name2 } import {name1, name2 } from 'some-path/file' console.log( name1, // 'value1' name2, // 'value2' )
需要注意的重要一點是,這些列表不是對象。它看起來像對象,但事實并非如此。我第一次學習模塊時,我也產生了這種困惑。真相是它不是一個對象,它是一個導出列表
// ? Export list ≠ Object export { name: 'name' }
重命名的導出
對導出名稱不滿意?問題不大,可以使用as關鍵字將其重命名。
const name = 'value' export { name as newName } import { newName } from 'some-path/file' console.log(newName); // 'value' // 原始名稱不可訪問 console.log(name); // ? undefined
不能將內聯導出與導出列表一起使用
export const name = 'value' // 你已經在導出 name ??,請勿再導出我 export { name }
重命名導入
同樣的規則也適用于導入,我們可以使用as關鍵字重命名它。
const name1 = 'value1' const name2 = 'value2' export { name1, name2 as newName2 } import { name1 as newName1, newName2 } from '...' console.log(newName1); // 'value1' console.log(newName2); // 'value2' ? name1; // undefined name2; // undefined
導入全部
export const name = 'value' export default 'defaultValue' import * as anyName from 'some-path/file' console.log(anyName.name); // 'value' console.log(anyName.default); // 'defaultValue'
命名方式 vs 默認方式
是否應該使用默認導出一直存在很多爭論。
就像任何事情一樣,答案沒有對錯之分。正確的方式永遠是對你和你的團隊最好的方式。
命名與默認導出的非開發術語
假設你欠朋友一些錢。你的朋友說可以用現金或電子轉帳的方式還錢。通過電子轉帳付款就像named export一樣,因為你的姓名已附加在交易中。因此,如果你的朋友健忘,并開始叫你還錢,說他沒收到錢。這里,你就可以簡單地向他們顯示轉帳證明,因為你的名字在付款中。但是,如果你用現金償還了朋友的錢(就像default export一樣),則沒有證據。他們可以說當時的 100 塊是來自小紅。現金上沒有名稱,因此他們可以說是你本人或者是任何人?
那么采用電子轉帳(named export)還是現金(default export)更好?
這取決于你是否信任的朋友?, 實際上,這不是解決這一難題的正確方法。更好的解決方案是不要將你的關系置于該位置,以免冒險危及友誼,最好還是相互坦誠。是的,這個想法也適用于你選擇named export還是default export。最終還是取決你們的團隊決定,哪種方式對團隊比較友好,就選擇哪種,畢竟不是你自己一個人在戰斗,而是一個團體?
到此,關于“ES6中怎么使用module”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。