前言
模組劃分,為了解耦,所以才出了這些規定。 我在學習這些模組化的時候,思考到如果你的程式碼規範,專案複雜度不高。完全不用這些語法,並且你可以自由的定義全域性變數,非常的自由高效快速。 在 Node.js 上就有模組化,我另外一篇文章具體分析 CommonJS 模組底層如何實現
憂慮
__1.現在我還沒有體會到把一個檔案裡的程式碼寫到不可維護的程度,就要學習模組劃分。 2.這樣其實有點拔苗助長,另外 ES6 module 沒有達到我心目中的模組劃分極致簡約語法 3.模組化的出現是為了妥協,向大型專案妥協,向多人開發妥協。 4.現在的專案越來越大,新語法新規定越來越多。這無疑加重了我們的學習時間。程式設計師的主要目的不是為了技術而學習,是為了創造好的產品專案才去學習的。最終我們的目的是創造好的專案,進而改變世界 。(不排除有程式設計師單純的熱愛技術與編碼藝術) __
__我心目中的 import 與 export __
const a = import('路徑');
export = a;
複製程式碼
是的就這兩句話。
總結現在 ES6 的 module 語法規範
匯出,匯入
export const animal = {
bird: 'bird',
pig: 'pig'
}
import {bird as duck, pig} from 'animal'; //匯出修改名字
複製程式碼
變數提升
console.log(pig);
import {bird as duck, pig} from 'animal';
複製程式碼
靜態執行
import { 'p' + 'ig' } from 'animal';//報錯
複製程式碼
if (x === 1) {
import { pig } from 'animal';//報錯
}
複製程式碼
整體匯入
import * as animal from 'animal';
//animal.bird;
//animal.pig;
複製程式碼
default
export default {
bird: 'bird',
pig: 'pig'
}
import xxx from 'animal';
複製程式碼
輸入輸出結合
export * from 'animal'; //這樣的語法有必要存在嗎?也許有少許場景把
export {bird as duck, pig} from 'animal';
複製程式碼