require.js中的中的define函数详解函数详解
主要给大家介绍了关于require.js中define函数的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者
使用require.js中的define函数具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
前言前言
模块不同于传统的脚本文件,它良好地定义了一个作用域来避免全局名称空间污染。它可以显式地列出其依赖关系,并以函数
(定义此模块的那个函数)参数的形式将这些依赖进行注入,而无需引用全局变量。RequireJS的模块是模块模式的一个扩展,
其好处是无需全局地引用其他模块。 RequireJS的模块语法允许它尽快地加载多个模块,虽然加载的顺序不定,但依赖的顺序
最终是正确的。同时因为无需创建全局变量,甚至可以做到在同一个页面上同时加载同一模块的不同版本。
在定义一个模块的时候,方法的第一行写一个在定义一个模块的时候,方法的第一行写一个“use strict”;这是干什么的?这是干什么的?
use strict --严格模式,这种模式使得Javascript在更严格的条件下运行。
消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
消除代码运行的一些不安全之处,保证代码运行的安全;
提高编译器效率,增加运行速度;
为未来新版本的Javascript做好铺垫。
1. 简单的值对模块简单的值对模块
其实就是把文件名称作为name参数传入,若依赖该组件那么返回的就是一个对象!
define({
name: "hehe",
age: "18"
});
2. 简单的函数模块简单的函数模块
和上面一样文件名称作为默认的name,与上面的差异是,可以提前执行返回值外的代码
define(function() {
return {
name: "hehe",
age: "18"
};
});
3. 依赖函数模块依赖函数模块
define([
'angular',
'jsUtil',
'modules/meet/modules',
'modules/meet/services/Meet',
'modules/meet/services/MeetRemoteService'
],function(require) {
'use strict';
var module = angular.module('meet.services');
module.factory('MeetService', function(Meet, MeetRemoteService) {
var service = {
name: 'hehe',
age: '18'
};
return service;
});
});
和上面一样,关键是依赖模块是以返回值作为入参的形式传入,如果加载错误或者没有找到对应的模块,那么得到的入参是
Undefiend,需要注意!
4. 返回函数模块返回函数模块
define([
'angular',
'jsUtil',
'modules/meet/modules',
'modules/meet/services/Meet',
'modules/meet/services/MeetRemoteService'
],function(require) {
评论10