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 相关文章推荐
很酷的javascript loading效果代码
Jun 18 Javascript
Javascript变量函数浅析
Sep 02 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
Aug 06 Javascript
原生js实现autocomplete插件
Apr 14 Javascript
针对JavaScript中this指向的简单理解
Aug 26 Javascript
基于vuejs+webpack的日期选择插件
May 21 Javascript
通过npm引用的vue组件使用详解
Mar 02 Javascript
javascript 中的try catch应用总结
Apr 01 Javascript
在vue项目中使用md5加密的方法
Sep 14 Javascript
微信小程序实现评论功能
Nov 28 Javascript
vue配置font-awesome5的方法步骤
Jan 27 Javascript
qrcode生成二维码微信长按无法识别问题的解决
Apr 04 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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
php面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
nginx 设置多个站跨域
2021/03/09 Servers
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
微信小程序 获取设备信息 API实例详解
2016/10/02 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
详解python 字符串和日期之间转换 StringAndDate
2017/05/04 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
python pyheatmap包绘制热力图
2018/11/09 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
python 如何对logging日志封装
2020/12/02 Python
里程积分管理买卖交换平台:Points.com
2017/01/13 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
六查六看剖析材料
2014/02/15 职场文书
医院保洁服务方案
2014/06/11 职场文书
节约粮食标语
2014/06/18 职场文书
营销学习心得体会
2014/09/12 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
大连导游词
2015/02/12 职场文书
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python