標籤:div 學習 nodejs 模組化 2.0 ports 傳參 加法 檔案
一、 js的模組化
什麼是模組化:
模組化的概念最早是後台,隨著ajax技術的興起,js在編程中所佔的地位越來越高,同時js的檔案也相應的越來越多。為了方便檔案的管理和更新,提出了js檔案的模組 化,將同一類型的功能組合在一起
二、模組化的演變過程:
1.普通的方法的書寫格式。
問題:多個人開發可能會造成變數汙染,為瞭解決這個問題引出2
2.使用對象的範圍來解決變數汙染問題
問題:如果在這個對象中有一些屬性不希望被外界訪問到,
不能實現這個效果,為瞭解決這個問題,引出3
3.使用函數的方式來私人化變數
問題:每次使用的時候都需要重新建立對象,為瞭解決這個問題引出了4
4.使用函數的自執行模式來代替 new 操作
問題:沒有問題,但是要考慮到擴充性,引出了5
5.使用一個自執行函數在原來的對象上擴充方法
注意點:將來自執行的時候要進行傳參,這個參數需要做一個處理(window.calc || {})
6如果將來要用到第三方模組,我們需要將模組名寫在自執行函數的參數上。
三、 第三方模組化管理工具:
1.seajs:
什麼seajs:第三方模組化管理工具
學習網址:seajs.org
特點:
1)seajs 遵循CMD 規範
2)node.js一般書寫模組化代碼
3)依賴的自動載入、配置的簡潔清晰
作用步驟:
1)要定義一個單獨的模組:
關鍵字: define
define(function(require,exports,module){ //定義的代碼塊})
2)要在模組中返回一些方法/屬性/對象
關鍵字:exports/module.exports
3)如果要引用一個第三方模組:
關鍵字:require
var add = require(‘./add.js‘);
注意點:將來通過require關鍵字引用了其它模組化以後,會返回引用模組化的一個對象:exports/module.exports
4)使用seajs 定義好的模組
關鍵字:seajs
seajs.use(‘./calc/calc.js‘,function(obj){ //注意:回呼函數中的obj對象指向中是當前引用的模組calc.js模組中的exports/module.exports //使用加法 console.log(obj.add.add(1,1)); //使用減法 console.log(obj.sub.sub(1,1));})
注意:回呼函數中的參數就是當前引用模組的exports對象
2.seajs遵循的規範:CMD規範
CMD規範的作用:規範明確了模組的基本書寫格式和基本互動規則
a.cmd規定在define中可以傳入方法,對象,字串
b.cmd規定require用於接收第三方包提供的介面
require在使用的時候要注意以下幾點:
1.0拼字正確
2.0不要修改
3.0使用直接量
c.cmd規定exports用來向外提供模組介面
d.cmd規定module.exports用於向外提供模組的介面
遵守CMD規範的模組都有一個特點:按需要載入特點(懶載入)
3.require 的使用
簡單使用:基本與seajs一樣
require 使用的AMD規範。
CMD與AMD基本相同,最大區別是CMD是懶載入,AMD是預先載入
補充:
(1)requirejs與seajs使用基本相同
有兩點要注意:1)seajs使用模組時用方法Seajs.use,而requirejs直接用require關鍵字
2)seajs只使用一個模組時可以只傳一入字串,但是require必須是一個數組
(2)懶載入與預先載入
預先載入模式:當第一次訪問時將所有的檔案載入出來
優點:第一次訪問完成以後,再次訪問的速度會很快
缺點:第一次載入頁面要等待很久
懶載入模式:使用的時候才會載入對應的檔案
優點:第一次訪問速度相對快點
缺點:再訪問其它新的模組是速度會變慢
nodejs的第一天學習