web 前端模組化都有什麼?
知識點根據平台劃分
瀏覽器 amd、cmd 存在網路瓶頸,使用非同步載入
非瀏覽器 commonjs 直接操作 io,同步載入
瀏覽器amd 依賴前置 requirejs
cmd 就近依賴 seajs
amd 與 cmd 都是在頁面初始化時載入完成所有模組,唯一的區別就是就近依賴是當模組被 require 時才會觸發執行。
commonjs 的模組,是乙個物件
console.log('b.js ', require('./a.js').x);
可以看成console.log('b.js', modulea.x);
在第二步中modulea.x賦值為a1,於是輸出b.js, a1
保留字commonjs require exports / module.exports
es6 require export / import
模組輸出 載入方式
commonjs 值拷貝 物件
es6 引用(符號鏈結) 靜態解析
怎麼理解 值拷貝和引用拷貝?
值拷貝,相當於,在引用的檔案中,a 是 require 進來的,但是使用a ,實際上是 b = a, 我們實際上用的是 b
引用拷貝,在引用檔案中,我們引用了a , 對a的修改也生效
靜態解析:es6 不需要和 commonjs 一樣,需要把整個檔案載入進去,形成乙個物件之後,才能知道自己有什麼,而是在編寫**的過程中,**是什麼,它就是什麼。
umd = amd + commonjs
webpack
webpack 在定義模組上,可以支援 commonjs、amd 和 es6 的模組宣告方式,換句話說,就是你的模組如果是使用 commonjs、amd 或 es6 的語法寫的,webpack 都支援
Web前端 模組化程式設計
匯出 let cat let dog let name 測試文字 function sum a,b 同下 簡寫 exports 同下 簡寫 module.exports 同上,原生 module.exports 匯入 可以匯出全部 const m require exportes51 可以匯出部分 ...
前端模組化
前端模組化解決什麼問題?有了模組,我就可以很方便的使用別人的 想要什麼功能,就用載入什麼模組。但是,這樣做需要有乙個前提,那就是大家必須以同樣的方式編寫模組,否則就亂套了。所以組內需要有一套統一的模組規範。如何實現模組?1 物件字面量的變體 2 js設計模式的模組模式 3 採用成熟的庫檔案。前兩種方...
前端模組化
定義 具有相同屬性和行為的事物的集合 在前端中 將一些屬性比較類似和行為比較類似的內容放在同乙個js檔案裡面,把這個js檔案稱為模組 目的 為了每個js檔案只關注與自身有關的事情,讓每個js檔案各行其職 模組化 指的就是遵守commonjs規範,解決不同js模組之間相互呼叫問題 commonjs a...