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 相关文章推荐
基于JQuery的asp.net树实现代码
Nov 30 Javascript
JavaScript自定义事件介绍
Aug 29 Javascript
JS匀速运动演示示例代码
Nov 26 Javascript
jquery插件jTimer(jquery定时器)使用方法
Dec 23 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
Feb 13 Javascript
Javascript中arguments用法实例分析
Jun 13 Javascript
canvas实现环形进度条效果
Mar 23 Javascript
AngularJS实现tab选项卡的方法详解
Jul 05 Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 Javascript
postman+json+springmvc测试批量添加实例
Mar 31 Javascript
Koa代理Http请求的示例代码
Oct 10 Javascript
微信小程序实现类似微信点击语音播放效果
Mar 30 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程序中防止盗链
2008/04/09 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
PHP中基本符号及使用方法
2010/03/23 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
php中长文章分页显示实现代码
2012/09/29 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
从零学Python之hello world
2014/05/21 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
python for和else语句趣谈
2019/07/02 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
Python函数生成器原理及使用详解
2020/03/12 Python
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
应届生求职简历的自我评价怎么写
2013/10/23 职场文书
预备党员入党思想汇报
2014/01/04 职场文书
大专生求职信
2014/06/29 职场文书
自主招生自荐信格式
2015/03/04 职场文书
社区党建工作总结2015
2015/05/13 职场文书
边城读书笔记
2015/06/29 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
JS的深浅复制详细
2021/10/16 Javascript