seajs下require书写约定实例分析


Posted in Javascript onMay 16, 2018

本文实例讲述了seajs下require书写约定。分享给大家供大家参考,具体如下:

require 书写约定

使用 Sea.js 书写模块代码时,需要遵循一些简单规则。

只是书写和调试时的规范!!!构建后的代码完全不需要遵循下面的约定!!!!!!

1. 正确拼写

模块 factory 构造方法的第一个参数 必须 命名为 require

// 错误!
define(function(req) {
 // ...
});
// 正确!
define(function(require) {
 // ...
});

2. 不要修改

不要重命名 require 函数,或在任何作用域中给 require 重新赋值。

// 错误 - 重命名 "require"!
var req = require, mod = req("./mod");
// 错误 - 重定义 "require"!
require = function() {};
// 错误 - 重定义 "require" 为函数参数!
function F(require) {}
// 错误 - 在内嵌作用域内重定义了 "require"!
function F() {
 var require = function() {};
}

3. 使用直接量

require 的参数值 必须 是字符串直接量。

// 错误!
require(myModule);
// 错误!
require("my-" + "module");
// 错误!
require("MY-MODULE".toLowerCase());
// 正确!
require("my-module");

在书写模块代码时,必须遵循这些规则。其实只要把 require 看做是语法关键字 就好啦。

关于动态依赖

有时会希望可以使用 require 来进行条件加载:

if (todayIsWeekend)
 require("play");
else
 require("work");

但请牢记,从静态分析的角度来看,这个模块同时依赖 play 和 work 两个模块,加载器会把这两个模块文件都下载下来。 这种情况下,推荐使用 require.async 来进行条件加载。

希望本文所述对大家seajs程序设计有所帮助。

Javascript 相关文章推荐
使用GruntJS构建Web程序之构建篇
Jun 04 Javascript
JS交换变量的方法
Jan 21 Javascript
javascript中JSON对象与JSON字符串相互转换实例
Jul 11 Javascript
浅谈angularJS中的事件
Jul 12 Javascript
基于jQuery的checkbox全选问题分析
Nov 18 Javascript
JavaScript实现同一个页面打开多张图片
Dec 29 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
Feb 26 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
Apr 29 Javascript
详解VSCode配置启动Vue项目
May 14 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
Oct 28 Javascript
Axios取消重复请求的方法实例详解
Jun 15 Javascript
关于对TypeScript泛型参数的默认值理解
Jul 15 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
May 16 #Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
May 16 #Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
May 16 #Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
May 16 #Javascript
浅谈如何通过node.js对数据进行MD5加密
May 16 #Javascript
如何用input标签和jquery实现多图片的上传和回显功能
May 16 #jQuery
vue keep-alive请求数据的方法示例
May 16 #Javascript
You might like
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
使用jquery-easyui的布局layout写后台管理页面的代码详解
2019/06/19 jQuery
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Pyhton中防止SQL注入的方法
2015/02/05 Python
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
python 进程池pool使用详解
2020/10/15 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
介绍一下write命令
2012/09/24 面试题
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
北京故宫导游词
2015/01/31 职场文书
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python
Python中itertools库的四个函数介绍
2022/04/06 Python