本篇文章給大家分享的是有關(guān)如何正確的使用seajs和requirejs模塊,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)建站于2013年成立,先為秀峰等服務(wù)建站,秀峰等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為秀峰企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
模塊化的起因是傳統(tǒng)的直接引入js方法存在問題:
必須通過全局變量共享模塊,有可能會(huì)出現(xiàn)命名沖突的問題;
依賴的文件必須手動(dòng)地使用標(biāo)簽引入到頁面中。
下面是seajs和requirejs的簡單案例。
seajs 我用的seajs版本是2.2.3
html部分
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>極客學(xué)院首頁</title> </head> <body> <button id="testbtn0">測試按鈕0</button> <button id="testbtn1">測試按鈕1</button> <script type="text/javascript" src="./js/sea.js"></script> <script type="text/javascript"> seajs.use('./js/main'); </script> </body> </html>
main.js文件
define(function(require,exports,module){ //引入兩個(gè)js文件 require("test0"); require("test1"); })
test0.js
define(function(require,exports,module){ var $$=require("common").$$; var testbtn0=$$("#testbtn0"); testbtn0.addEventListener("click",function(e){ alert(e.target.innerText); }); })
test1.js
define(function(require, exports, module) { var $$ = require("common").$$; var testbtn1 = $$("#testbtn1"); testbtn1.addEventListener("click", function(e) { alert(e.target.innerText); }); })
coomm.js
define(function(rerquire,exports,module){ /*//第一種導(dǎo)出方案 exports.$$=function(tag){ return document.querySelector(tag); }*/ //第二種導(dǎo)出方案 module.exports={ $$:function(tag){ return document.querySelector(tag); }, test:"測試數(shù)據(jù)" } //第三種導(dǎo)出方案 /* return { $$:function(tag){ return document.querySelector(tag); }, test:"測試數(shù)據(jù)" }*/ })
以上是為seajs的,而requirejs的直接就是該一下html文件就可以了,真是哭笑不得啊。才發(fā)現(xiàn)二者是通過的。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>極客學(xué)院首頁</title> </head> <body> <button id="testbtn0">測試按鈕0</button> <button id="testbtn1">測試按鈕1</button> <script type="text/javascript" data-main="./js/main" src="./js/require.js"></script> </body> </html>
關(guān)于導(dǎo)出接口有三種,分別是exports,用來導(dǎo)出變量;然后是module.exports用于導(dǎo)出對象;最后是return直接返回。
最后對seajs和requirejs的不通點(diǎn)做個(gè)總結(jié),選擇seajs作者github:
定位有差異。RequireJS 想成為瀏覽器端的模塊加載器,同時(shí)也想成為 Rhino / Node 等環(huán)境的模塊加載器。Sea.js 則專注于 Web 瀏覽器端,同時(shí)通過 Node 擴(kuò)展的方式可以很方便跑在 Node 環(huán)境中。
遵循的規(guī)范不同。RequireJS 遵循 AMD(異步模塊定義)規(guī)范,Sea.js 遵循 CMD (通用模塊定義)規(guī)范。規(guī)范的不同,導(dǎo)致了兩者 API 不同。Sea.js 更貼近 CommonJS Modules/1.1 和 Node Modules 規(guī)范。
推廣理念有差異。RequireJS 在嘗試讓第三方類庫修改自身來支持 RequireJS,目前只有少數(shù)社區(qū)采納。Sea.js 不強(qiáng)推,采用自主封裝的方式來“海納百川”,目前已有較成熟的封裝策略。
對開發(fā)調(diào)試的支持有差異。Sea.js 非常關(guān)注代碼的開發(fā)調(diào)試,有 nocache、debug 等用于調(diào)試的插件。RequireJS 無這方面的明顯支持。
插件機(jī)制不同。RequireJS 采取的是在源碼中預(yù)留接口的形式,插件類型比較單一。Sea.js 采取的是通用事件機(jī)制,插件類型更豐富。
以上就是如何正確的使用seajs和requirejs模塊,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁題目:如何正確的使用seajs和requirejs模塊
文章出自:http://newbst.com/article22/jhchcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、企業(yè)建站、、企業(yè)網(wǎng)站制作、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)