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 给汉字排序实例代码
Jun 28 Javascript
javascript面向对象之二 命名空间
Feb 08 Javascript
javascript遍历控件实例详细解析
Jan 10 Javascript
解决jquery实现的radio重新选中的问题
Jul 03 Javascript
JavaScript数组去重的两种方法推荐
Apr 05 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
Nov 23 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
Aug 18 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
May 03 Javascript
用vue快速开发app的脚手架工具
Jun 11 Javascript
Vue props 单向数据流的实现
Nov 06 Javascript
微信小程序实现卡片左右滑动效果的示例代码
May 01 Javascript
js判断非127开头的IP地址的实例代码
Jan 05 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操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
PHP异步调用socket实现代码
2012/01/12 PHP
php实现俄罗斯乘法实例
2015/03/07 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
PHPMailer发送邮件
2016/12/28 PHP
javascript中万恶的function实例分析
2011/05/25 Javascript
JSON为什么那样红为什么要用json(另有洞天)
2012/12/26 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
bootstrap-treeview自定义双击事件实现方法
2016/01/09 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
jquery实现多次上传同一张图片
2017/01/09 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
r.js来合并压缩css文件的示例
2018/04/26 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
python图片验证码生成代码
2016/07/02 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
C语言基础笔试题
2013/04/27 面试题
给面试官的感谢信
2014/02/01 职场文书
协议书模板
2014/04/23 职场文书
违反单位工作制度检讨书
2014/10/25 职场文书
经营场所使用证明
2015/06/19 职场文书
公司档案管理制度
2015/08/05 职场文书
浅析NIO系列之TCP
2021/06/15 Java/Android
redis中lua脚本使用教程
2021/11/01 Redis
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python