seajs下require書(shū)寫(xiě)約定實(shí)例分析
本文實(shí)例講述了seajs下require書(shū)寫(xiě)約定。分享給大家供大家參考,具體如下:
require 書(shū)寫(xiě)約定
使用 Sea.js 書(shū)寫(xiě)模塊代碼時(shí),需要遵循一些簡(jiǎn)單規(guī)則。
只是書(shū)寫(xiě)和調(diào)試時(shí)的規(guī)范?。?!構(gòu)建后的代碼完全不需要遵循下面的約定!?。。。?!
1. 正確拼寫(xiě)
模塊 factory 構(gòu)造方法的第一個(gè)參數(shù) 必須 命名為 require
。
// 錯(cuò)誤! define(function(req) { // ... }); // 正確! define(function(require) { // ... });
2. 不要修改
不要重命名 require
函數(shù),或在任何作用域中給 require
重新賦值。
// 錯(cuò)誤 - 重命名 "require"! var req = require, mod = req("./mod"); // 錯(cuò)誤 - 重定義 "require"! require = function() {}; // 錯(cuò)誤 - 重定義 "require" 為函數(shù)參數(shù)! function F(require) {} // 錯(cuò)誤 - 在內(nèi)嵌作用域內(nèi)重定義了 "require"! function F() { var require = function() {}; }
3. 使用直接量
require
的參數(shù)值 必須 是字符串直接量。
// 錯(cuò)誤! require(myModule); // 錯(cuò)誤! require("my-" + "module"); // 錯(cuò)誤! require("MY-MODULE".toLowerCase()); // 正確! require("my-module");
在書(shū)寫(xiě)模塊代碼時(shí),必須遵循這些規(guī)則。其實(shí)只要把 require
看做是語(yǔ)法關(guān)鍵字 就好啦。
關(guān)于動(dòng)態(tài)依賴
有時(shí)會(huì)希望可以使用 require
來(lái)進(jìn)行條件加載:
if (todayIsWeekend) require("play"); else require("work");
但請(qǐng)牢記,從靜態(tài)分析的角度來(lái)看,這個(gè)模塊同時(shí)依賴 play 和 work 兩個(gè)模塊,加載器會(huì)把這兩個(gè)模塊文件都下載下來(lái)。 這種情況下,推薦使用 require.async
來(lái)進(jìn)行條件加載。
希望本文所述對(duì)大家seajs程序設(shè)計(jì)有所幫助。
相關(guān)文章
seajs實(shí)現(xiàn)強(qiáng)制刷新本地緩存的方法分析
這篇文章主要介紹了seajs實(shí)現(xiàn)強(qiáng)制刷新本地緩存的方法,結(jié)合實(shí)例形式簡(jiǎn)單分析了seajs強(qiáng)制刷新本地緩存的原理、實(shí)現(xiàn)方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-10-10詳解Sea.js中Module.exports和exports的區(qū)別
最近在看Seajs時(shí),看到了exports.doSomething和module.exports,想對(duì)這兩者的區(qū)別一探究竟。所以下面這篇文章主要介紹了Sea.js中Module.exports和exports的區(qū)別,需要的朋友可以參考借鑒,一起來(lái)看看吧。2017-02-02Seajs是什么及sea.js 由來(lái),特點(diǎn)以及優(yōu)勢(shì)
這篇文章主要介紹了Seajs的相關(guān)知識(shí)和和學(xué)習(xí)心得,適合剛接觸SeaJS的同學(xué),需要的朋友可以參考下,有更好的新手教程或文檔,歡迎推薦、分享2016-10-10Seajs 簡(jiǎn)易文檔 提供簡(jiǎn)單、極致的模塊化開(kāi)發(fā)體驗(yàn)
這篇文章主要介紹了Seajs 簡(jiǎn)易文檔 提供簡(jiǎn)單、極致的模塊化開(kāi)發(fā)體驗(yàn),非官方文檔,整理來(lái)自己官方文檔的文字與實(shí)例,方便速查。需要的朋友可以參考下2016-04-04