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 相关文章推荐
checkbox 复选框不能为空
Jul 11 Javascript
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
Jul 28 Javascript
JavaScript匿名函数之模仿块级作用域
Dec 12 Javascript
jQuery实现的超简单点赞效果实例分析
Dec 31 Javascript
jQuery常用的一些技巧汇总
Mar 26 Javascript
vue 中directive功能的简单实现
Jan 05 Javascript
使用vue2.0创建的项目的步骤方法
Sep 25 Javascript
简单两步使用node发送qq邮件的方法
Mar 01 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
May 07 Javascript
vue项目强制清除页面缓存的例子
Nov 06 Javascript
解决node终端下运行js文件不支持ES6语法
Apr 04 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
May 12 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 文件上传全攻略
2010/04/28 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
jquery中对表单的基本操作代码
2010/07/29 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python切片用法实例教程
2014/09/08 Python
Python数据结构之翻转链表
2017/02/25 Python
python WindowsError的错误代码详解
2017/07/23 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
Python中zip函数如何使用
2020/06/04 Python
TensorFlow-gpu和opencv安装详细教程
2020/06/30 Python
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
公职人员索取回扣检举信
2014/04/04 职场文书
入党积极分子评语
2014/05/04 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
Python合并多张图片成PDF
2021/06/09 Python
flex弹性布局详解
2022/03/20 HTML / CSS
Java基础——Map集合
2022/04/01 Java/Android
python实现学生信息管理系统(面向对象)
2022/06/05 Python
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python