//module1.js module.exports = { msg : 'module1', foo(){ console.log(this.msg); } }
//module2.js module.exports = function(){ console.log('module2'); } //至關於給exports對象賦值
//module3.js exports.foo = function(){ console.log('foo() module3'); } exports.boo = function(){ console.log('boo() module3'); } exports.arr = [1,2,3,4,4,6,6,5,2,1] //至關於給exports對象屬性賦值
let uniq = require('uniq') //數組去重排序第三方包,是一個函數 let module1 = require('./modules/modules1') let module2 = require('./modules/modules2') let module3 = require('./modules/modules3') module1.foo() //module1 module2() //module2 module3.foo() //foo() module3 module3.boo() //boo() module3 console.log(uniq(module3.arr))
//module1.js module.exports = { msg : 'module1', foo(){ console.log(this.msg); } } //module2.js module.exports = function(){ console.log('module2'); } //至關於給exports對象賦值 //module3.js exports.foo = function(){ console.log('foo() module3'); } exports.boo = function(){ console.log('boo() module3'); } //app.js let module1 = require('./module1') let module2 = require('./module2') let module3 = require('./module3') module1.foo() module2() module3.boo() module3.foo()
<script src="./js/dist/build.js"></script>
//1.定義沒有依賴的模塊 define(function(){ return 模塊 }) //2.定義有依賴的模塊 define(['module1','module2'],function(m1,m2){ return 模塊 })
require(['module1','module2'],function(m1,m2){ 使用m1 m2 })
//定義沒有依賴的模塊 define(function(){ let name = 'module1.js', function getName(){ return name } //暴露模塊 return {getName} }) //定義有依賴的模塊 define(['module1','jquery'],function(module1,$){ let msg = 'module2.js', function show(){ console.log(msg,module1.getName()) } $('body').css('backgroundColor','red') //暴露模塊 return {show} }) //引入模塊 (function(){ requirejs.config({ //baseUrl: 'js/lib', //基本的路徑,和paths裏面的路徑要拼接 paths:{ //配置路徑 module1:'./modules/module1', module2:'./modules/module2', jquery:'./libs/jquery-1.10.1' } }) requirejs(['module2'],function(module2){ module2.show() }) })() //html <script data-main="js/main.js" src="js/lib/require.js"></script>
//定義沒有依賴的模塊 define(function(reqiuire,exports,module){ exports.xxx = value module.exports = value }) //定義有依賴的模塊 define(function(require,exports,module){ //同步引入依賴模塊 let module2 = require('./module2') //異步引入依賴模塊 require.async('./module3',function(module3){ }) //暴露模塊 exports.xxx = value })
define(function(require){ let m1 = require('./module1') let m4 = require('./module4') m1.show() m4.show() })
define(function(require,exports,module){ let msg = 'module1' function foo(){ return msg } //暴露模塊 module.exports = {foo} }) define(function(require,exports,module){ let msg = 'module2' function boo(){ console.log(msg) } module.exports = boo }) define(function(require,exports,module){ let data = 'module3' function fun(){ console.log(data) } exports.module3 = {fun} }) define(function(require,exports,module){ let msg = 'module4' //同步引入 let module2 = require('./module2') module2() //module2 //異步引入 require.async('./module3',function(module3){ module3.module3.fun() //module3 }) function fun2(require,exports,module){ console.log(msg) } exports.fun2 = fun2 }) define(function(require){ let module1 = require('./module1') module1.foo() //module1 let module4 = require('./module4') module4.fun2() //module4 }) //html <script src="js/lib/sea.js"></script> <script> seajs.use('./js/modules/main.js') </script>
3. 定義.babelrc文件 (rc:run control 運行時控制文件)javascript
//module1.js //暴露模塊 分別暴露 export function foo() { console.log('foo() module1') } export function boo() { console.log('boo() module1') } export let arr = [1,2,3,4,5] //module2.js //統一暴露 function fun(){ console.log('fun() module2'); } function fun2(){ console.log('fun2() module2'); } //module3.js //默認暴露 能夠暴露任意數據類型 暴露什麼數據就是接受什麼數據 export default ()=>{ console.log('默認暴露的箭頭函數') } //默認暴露只能暴露一次,不然會報錯,暴露多個數據能夠放到一個對象中暴露 export {fun,fun2} //main.js //引入其餘的模塊 //import xxx from '路徑' import $ from 'jquery' import {foo,boo,arr} from './module1' import {fun,fun2} from './module2' import module3 from './module3' $('body').css('backgroundColor','red') console.log(foo,boo,arr) console.log(fun,fun2) module3() //規定在使用分別暴露和統一暴露的時候,必需要用解構賦值的方法接受 //html <script src="js/dist/bundle.js"></script>