seajs使用-1 解決衝突和依賴

做用:解決衝突和依賴函數

1. 發生衝突ui

<script src="common.js"></script>spa

<script>code

你的同事:對象

// tab()blog

你的新同事接口

function tab() {}  // 衝突了ip

</script>ci

 解決衝突:加命名空間(缺點:1. 前綴長,2. 只能下降衝突不能避免)回調函數

 

2. 發生依賴

<script src="show.js"></scirpt>

// 升級以後若是此模塊( 假設是日曆 )又引用了新的js文件,這會致使全部頁面都要新加這個新的js文件

show();  // 你的同事用你的show.js忘記加依賴文件了,須要加依賴文件

 

看看下面是否是很痛苦:

你的同事:
<script src="a.js"></script>
<script src="show.js"></script>
show();


你的同事:
<script src="a.js"></script>
<script src="b.js"></script>
<script src="show.js"></script>
show();

 

解決衝突:

// 兩個參數:第一個參數:模塊的地址  第二個參數:回調函數
// sea的默認根目錄:sea.js這個文件(建議寫成./)

seajs.use(['./js/module2.js'], function(ex) {
  ex.show();
});

show();  // 這裏不會衝突

 

解決依賴(新同事過來直接調用一個js就ok啦):

module1.js頁面

define(function(require, exports, module) { // sea下的參數:不容許修改的
    // exports: 對外提供接口的對象
    // require: 模塊之間依賴的接口
    var a = require('./module2.js').a; // 當引入的是sea下面的模塊的時候,那麼require執行完的結果就是exports
    function show() {
         alert(a);
    }
    exports.show = show;
});

module2.js頁面

define(function(require, exports, module) {
    var a = 100;
    exports.a = a;
});
相關文章
相關標籤/搜索