前端模組化

2022-06-04 16:39:43 字數 1924 閱讀 7639

js模組化提供三種規範

1.commonjs規範,代表nodejs適合後台開發,因為是同步的,伺服器執行快,等待時間不長,commonjs不適合用於前端,前端的客戶端是瀏覽器,瀏覽器追求非同步載入,瀏覽器不能等待時間太長。

2.前端模組規範:amd 代表requirejs 是非同步的

3.第三個模組化規範:es6

有很多的前端框架都是amd規範,jquery,angular等

模組化操作

commonjs的操作

所有的模組化,都是兩個方向;

暴露介面 和 引入介面

module.exports={} 暴露的是乙個exports的物件

require()引入乙個模組

這是乙個後台的規範,在node環境可以直接執行,但是在客戶端不能直接執行(會報錯:require is not defined),需要對檔案進行打包編譯   webpack  ,gulp

前端模組,

自定義模組 (不借鑑模組)

避免函式的命名衝突,採用自呼叫函式

自呼叫函式執行時,會形成乙個私有的作用域,對內部的變數進行保護的作用;

暴露模組,需要後面的所有 js 檔案都能訪問這個模組,將該模組註冊在 window 下面;

**操作說明:

依賴模組  shang.js

依賴模組的依賴模組  fei.js  

在主要檔案中 去執行 模組的方法  index.js

在 html 中 引入 模組  index.html

上面的案例分析:

定義乙個 shang 模組,沒有任何依賴,定義乙個 fei 模組,這個模組依賴 shang 模組,定義乙個主檔案 依賴 fei 模組

注意事項:

依賴關係 千萬不能出錯

這個模式的缺點:

傳送多次請求

依賴關係不能放錯順序

依賴前端規範:  requirejs   amd

amd 是前端的模組化的一種規範  全稱為  async module difinition 非同步模組載入機制,所以需要按照規範定義和使用模組

define 定義

require 提供了全域性的方法 

define 來定義模組

定義模組分兩種:

不依賴其他模組

依賴其他的模組

如果不依賴其他模組,引數就是乙個函式,return 暴露介面

引入模式:

對這個模組進行配置    

引入模組

不依賴其他模組:he.js

指定的話,則是以 根目錄 為參照物,來對模組進行查詢

前端模組化

前端模組化解決什麼問題?有了模組,我就可以很方便的使用別人的 想要什麼功能,就用載入什麼模組。但是,這樣做需要有乙個前提,那就是大家必須以同樣的方式編寫模組,否則就亂套了。所以組內需要有一套統一的模組規範。如何實現模組?1 物件字面量的變體 2 js設計模式的模組模式 3 採用成熟的庫檔案。前兩種方...

前端模組化

定義 具有相同屬性和行為的事物的集合 在前端中 將一些屬性比較類似和行為比較類似的內容放在同乙個js檔案裡面,把這個js檔案稱為模組 目的 為了每個js檔案只關注與自身有關的事情,讓每個js檔案各行其職 模組化 指的就是遵守commonjs規範,解決不同js模組之間相互呼叫問題 commonjs a...

前端模組化

當多人開發同一專案時,很容易就會產生命名衝突的問題,尤其是js檔案,任何的js引入順序的打亂都可能導致專案執行失敗,為了解決命名衝突的問題,在es6之前,可以使用函式閉包來解決這個問題。即可能像這樣 function 這樣雖然可以解決命名衝突的問題,但也使得 的復用性變得極差,因為其它的檔案將無法再...