首先大家要知道requirejs是干嘛用的,要解释,那就用一句话说下:RequireJS是一个JavaScript文件和模块加载器

接下来我们开始学会配置使用requireJs,当然在学习使用的过程中也遇到了很多坑,不管是百度还是什么方法最终解决了,所以分享给大家,也方便下次使用时忘掉!

1、首页看一下我自己建的项目目录结构,这对接下来配置requireJs有很大的作用

2、下载requireJs及requireJs-text.js,将requirejs引入html文件中

设置async="true"的作用很明显和jq的ajax中async:true的目的是一样的,就是一边加载RequireJs一边执行它,如果设置为false的话则会等待ReuireJs完全加载完成采取执行它的方法,这会有很大可能导致页面刚开始一片空白,对于一个开发者来说,好像不是很友好。当然如果你script标签不在head里而在页面的最尾部,那你设不设置都是一样的,因为他最好才会加载,我并不建议大家这样做;data-main="scripts/main"的作用是申明RequireJs会去scripts目录下去找main.js文件,通常main.js是项目目录以及全局配置文件,这里也不例外
3、接下来我们该设置全局配置以及文件路劲了(main.js)

baseUrl    是设置你项目的路径,在接下来的路劲配置中都会以baseUrl设置的路劲作为相对路径去查找,请注意,这是我的文件目录下,我的require.js和全局配置文件(main.js)都是放在scripts目录下的

paths   是预加载js文件的配置项,一般情况都是不用写后缀名的,当然你的注意你的文件路劲,这里是我的文件路径,我的所有本地脚本都放在了js文件夹下,所以就是相对baseUrl的路径的上一目录的js目录下,
你也可以引入html文件,在引入hrml文件是你的确保你已经有并且引入text.js文件了,当然我把text.js放在了scripts目录下,所以之间去找同级就可以了

waitSeconds  设置的数值的作用的在这个时间段内如果没有加载成功或路径没有找到RequireJs会自己认为加载失败
4、现在我们看看如何引入css全局文件以及按需加载响应文件

就像图片上看到的一样,必须设置map为全局(*)配置css的引入js,我的这个js文件显然是放在baseUrl的同级目录下的,文件名为:css.min,这个是引入css必须的文件
加下来你会看到shim选项下有一个Btn数组配置了一堆css路劲,而这个Btn你也会发现在paths选项下我有配置,引入了自己的一个js,在这个js(Setting.js)是我项目必须要使用到的全局js文件,可以是我自己封装的方法以及第三方方法之类的,使用它做键值名的原因就是当我执行或者使用这个js文件是,下面数组里我配置的css文件就会全部引入到页面,好处很明显就是可以用作全局样式的引入
下面的bootstrap以及swiper的就是按需加载方法的例子,前面的jquery说明bootstrap是要依赖于jquery的,使用css!的方法就是会去相对路径去找这个css,而你会发现bootstrap的对象名适合上面paths配置项下的bootstrap的配置名是一致的,特别需要注意的是你的文件的路径,这里是我的项目目录所对应的文件路径。
当然你也可以使用这种方法去当个加载一个css样式,但是这是非常麻烦的

define(["require"], function(require) {
var cssUrl = require.toUrl("./css/Style.css");
var link = document.createElement("link");
link.type = "text/css";
link.rel = "stylesheet";
link.href = cssUrl;
document.getElementsByTagName("head")[0].appendChild(link);
});

  5、接下来就是你该如何使用刚才配置的js以及css了
Requirejs提供的方法很简单

require( ['jquery','bootstrap','Btn'],function($,bootstrap,Btn) {
console.log(Btn)
$('#Nav').html('style'me)
})

  你会发现对象的参数都是你刚才配置文件路径起的名字,就是jquery,后面函数的参数适合对象里的参数一一对应的,像jquery使用的是$,那我们传$就代表着在方法内我们已经可以使用jquery方法了,Btn是我的全局本地js文件,不做任何操作只需要引进来就行了,这时候我们在Btn配置的js中也就是Setting.js直接可以使用jquery的方法了,也就是启动了RequireJs,看图,bootstrap已经可以用了

而且我Setting.js的方法生效啦

浏览器显示点击黑色的盒子已经执行的方法

6、接下来就是如何引入以及使用html的模板了
首先你会看到我已经在paths下配置过两个html页面了,名字分别为page1和page2,在这个基础上配置了text的选项,因为引入html文件是依赖text.js的
用法也很简单,跟启动RequireJs一样的,需要传参到数组里,并且在函数里传入相应的参数就可以使用了
这是text.html和test1.html两个文件

参数接收传入直接使用

require( ['jquery','bootstrap','Btn','text!page1','text!page2'],function($,bootstrap,Btn,template,template1) {
$('#Btn').bind('click',function(){
$('#Nav').html(template)
})
$('#Btn1').bind('click',function(){
$('#Nav').html(template1)
})
})

  点击两个按钮可以分别加载不同的html模板到页面来也是不错的

嗯,就先说这些,当然还有很多,比如说r.js打包,build.js配置,欢迎留言交流!

//想一起学习交流的欢迎来qq群:565996731
(申请注明来自博客园)

Require,js配置使用心得的更多相关文章

  1. 记录:sea.js和require.js配置 与 性能对比

    最近有点忙,很久无写博客,记录一下之前的配置require.js和sea.js的配置.(有误有望提出 require.js 文件目录 /app(项目使用js) /lib(require.js jq存放 ...

  2. require.js配置路径的用法和css的引入

    前端开发在近一两年发展的非常快,JavaScript作为主流的开发语言得到了前所未有的热捧.大量的前端框架出现了,这些框架都在尝试着解决一 些前端开发中的共性问题,但是实现又不尽相同.通常一般的前端加 ...

  3. require.js 源码解读——配置默认上下文

    首先,我们先来简单说一下,require.js的原理: 1.载入模块
 2.通过模块名解析出模块信息,以及计算出URL
 3.通过创建SCRIPT的形式把模块加载到页面中.
 4.判断被加载的脚本,如 ...

  4. r.js合并实践 --项目中用到require.js做生产时模块开发 r.js build.js配置详解

    本文所用源代码已上传,需要的朋友自行下载:点我下载 第一步: 全局安装  npm install -g requirejs 第二步: 1.以下例子主要实现功能, 1)引用jq库获取dom中元素文本, ...

  5. require.js结合项目的使用心得

    1.首先引入require.js 2.配置config.js文件 var $cdn_url=/'''/''/;----->指定文件一个共用的路径 require.config({ baseUrl ...

  6. require.js使用baseUrl + paths导入文件配置的3种方法

    //main.js requirejs.config({ baseUrl: 'lib/js',//参照于引入这个js文件的index.html页面的相对路径,因为此时mian.js文件已经导入到了in ...

  7. Javascript模块化编程(三):require.js的用法

    Javascript模块化编程(三):require.js的用法 原文地址:http://www.ruanyifeng.com/blog/2012/11/require_js.html 作者: 阮一峰 ...

  8. javascript模块化编程(三):require.js用法

    本文来自阮一峰 这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战. 我采用的是一个非常流行的库require.js. 一.为什么要用require ...

  9. require.js工作原理(初始)

    详情:请见阮一峰老师的日志:http://www.ruanyifeng.com/blog/2012/11/require_js.html: 导入:<script data-main=" ...

随机推荐

  1. angularJs 个人初探笔记

    1.环境搭建与angular - phoneCat 安装可以通过git clone来下载源代码: git clone --depth=14 https://github.com/angular/ang ...

  2. RabbitMQ-客户端

    Install-Package RabbitMQ.Client 参考: http://www.rabbitmq.com/download.html https://www.nuget.org/pack ...

  3. Windows解决anaconda下双python版本安装TensorFlow

    首先,就是双版本anaconda的安装: 以前安装好的是python2.7版本,而TensorFlow的安装仅支持3.5版本的.但是自己本来的2.7版本又不想遗弃.所以安装双版本的: 在anacond ...

  4. python爬虫(一)_爬虫原理和数据抓取

    本篇将开始介绍Python原理,更多内容请参考:Python学习指南 为什么要做爬虫 著名的革命家.思想家.政治家.战略家.社会改革的主要领导人物马云曾经在2015年提到由IT转到DT,何谓DT,DT ...

  5. QT制作窗口切换的小程序

    前言:本次实验是在三个窗口之间自由切换,窗口中播放gif格式的动态图. 让我们先来看看使用到的主要的函数: 一.播放gif格式动态图的函数 QMovie *movie = new QMovie(&qu ...

  6. java环境变量和tomcat环境变量配置

    一.JAVA环境变量的配置1.首先下载JDK JDK可以在Oracle(甲骨文)公司的官方网站http://www.oracle.com下载2.安装完成后查看JDK安装路径一般是C:\Program ...

  7. TensorFlow(三)---------正则化

    TensorFlow正则化经常被用于Deep-Learn中,泛化数据模型,解决过拟合问题.再深度学习网络只有在有足够大的数据集时才能产生惊人的学习效果.当数据量不够时,过拟合的问题就会经常发生.然而, ...

  8. JavaScript学习笔记(二)——字符串

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  9. [转]Android应用安装包apk文件的反编译与重编译、重签名

    背景介绍: 最近在做Robotium自动化测试,使用到solo.takeScreenshot()函数以在测试过程中截图,但此函数需要被测试APP具有<uses-permission androi ...

  10. laravel5.3统计 withCount()方法的使用

    在laravel5.3之后可以使用withCount()这个方法. 注意:一定要是5.3版本之后,5.2和5.1都会报方法未定义 举个栗子: App\Post::withCount('comments ...