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 相关文章推荐
让焦点自动跳转
Jul 01 Javascript
JavaScript设计模式之装饰者模式介绍
Dec 28 Javascript
js实现点击链接后延迟3秒再跳转的方法
Jun 05 Javascript
AngularJS入门教程之AngularJS指令
Apr 18 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
Jun 20 Javascript
springMVC结合AjaxForm上传文件
Jul 12 Javascript
JavaScript中对象的不同创建方法
Aug 12 Javascript
Angular 应用技巧总结
Sep 14 Javascript
AngularJS extend用法详解及实例代码
Nov 15 Javascript
JavaScript引用类型Date常见用法实例分析
Aug 08 Javascript
websocket4.0+typescript 实现热更新的方法
Aug 14 Javascript
vue 实现上传组件
May 31 Vue.js
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日历制作代码分享
2014/01/20 PHP
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
不使用php api函数实现数组的交换排序示例
2014/04/13 PHP
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
php微信开发之图片回复功能
2018/06/14 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
2011/05/24 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
2013/10/11 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
Python语言实现机器学习的K-近邻算法
2015/06/11 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
英国标准协会商店:BSI Shop
2019/02/25 全球购物
母婴店促销方案
2014/03/05 职场文书
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
工程部岗位职责范本
2015/04/11 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
详解Python魔法方法之描述符类
2021/05/26 Python
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript