require学习笔记(一)

官网文档,看着有点云里雾里,个人写的文档又五花八门,好吧,我只能自己看遍各种文档,自己总结了。去粗取精的理解。

一、概念,模块化的管理

1、以module ID代替URL地址

2、相对于baseUrl的地址来加载所有代码

3、在<script>标签中有一个特殊属性data-main="",requirejs使用data-main来启动js加载过程,baseUrl一般设置到与该项目属性相一致的目录。

 

  1. <script tyoe="text/javascript" data-main="script/main.js" src="script/require.js"></script>//官方
(1)、data-main右侧的main文件可以不带有.js后缀,也可以带有.js后缀
a、demo1
文件目录:
html文件:
  1. <!DOCTYPE html>
  2. <html>
  3. <headlang="en">
  4. <metacharset="UTF-8">
  5. <scriptsrc="require.js"data-main="main.js"></script>
  6. <title></title>
  7. </head>
  8. <body>
  9. </body>
  10. </html>
main.js文件:
  1. /**
  2. * Created by s9-1102 on 2015/4/30.
  3. */
  4. require.config({
  5. paths:{
  6. app:'js/app'
  7. }
  8. })
  9. require([
  10. 'app'
  11. ])
app.js文件:
  1. define(function(){
  2. alert(123);
  3. })
上述代码中,main.js文件,带与不带.js后缀都是允许结果都是一样的。
官方解释:Require默认假定的所有资源都是js文件,所以是不需要在module ID(data-main)上添加.js后缀。requirejs会在解析到module ID(data-main)内的path(paths)时自动补上后缀。
 
4、 data-main入口点
(1)、requirejs在加载时会检查data-main属性
(2)、可以在data-main中设置模块加载选项,加载模块。*data-main中的模块都是异步加载的。如果在页面中加载了其他模块,则不能保证页面中加载的js文件,和data-main中模块的依赖性,当然是有依赖的前提。
 
5、定义模块
(1)、良好的定义了一个作用域来避免全局名称空间污染。
(2)、显式地列出依赖关系
(3)、以函数参数的形式将依赖注入
(4)、允许加载多个模块,加载的顺序是不定的,但是依赖顺序是正确的。
 
 
 
 

 





posted @ 2015-05-03 02:14  静文  阅读(304)  评论(0编辑  收藏  举报