在Html中使用Requirejs进行模块化开发实例详解


Posted in Javascript onApril 15, 2016

在前端模块化的时候,不仅仅是js需要进行模块化管理,html有时候也需要模块化管理。这里就介绍下如何通过requirejs,实现html代码的模块化开发。

如何使用requirejs加载html

Reuqirejs有一个text的插件,它可以读取指定文件的内容,读取到的内容就是文本。

如何下载text插件

第一种方法,可以通过npm下载:

npm install requirejs/text

第二种方法,也可以直接去官方github上面直接下载。

直接拷贝内容到text.js中即可。

如何安装text插件

在requirejs的main.js中配置text插件的依赖即可,跟jquery差不多,只要保证能通过正常的加载方式加载到它就行。

requirejs.config({
baseUrl: './',
paths: {
'text':path+'/require/text',
...
},
shim: {
...
}
});

也可以直接放在baseUrl里面。

如何使用text

在目标模块中,按照下面的语法即可:

define(function(require){
var html = require("text!html/test.html");
console.log(html);
});

或者

define(["text!html/test.html"],function(html){
console.log(html);
});

如何进行html的模块化开发?

看过上面你已经会使用text了,但是仍然不知道怎么组织前端代码。

举个栗子:

博客园的网站页面会根据上方的导航跳转到不同的页面。如果是在单页面中,很容易想到原始的做法是,导航的按钮对应不同的div,点击那个按钮,就显示与之对应的div;其他的div则隐藏掉。

那么,前端的代码可能会这样:

<html>
<body>
<nav>
导航按钮1、导航按钮2、导航按钮3
</nav>
<div style="display:block">按钮1对应的页面</div>
<div style="display:none">按钮2对应的页面</div>
<div style="display:none">按钮3对应的页面</div>
</body>
</html>

这样的代码会很杂乱...而且前端Html会很长...不利于维护。

那么有了reuqirejs的text插件以后,就可以这样了:

<html>
<body>
<nav>
导航按钮1、导航按钮2、导航按钮3
</nav>
<div id="target"></div>
</body>
</html>

然后在对应的模块中:

$('#target').html(require("text!目标按钮对应的页面.html"));

这样就随性多了吧!前端代码也可以跟着模块一起有效的管理了!

不过需要注意的是:这种方式会导致Jquery绑定的事件失效——所以一定要在html()方法后面,重新绑定下事件。

关于在Html中使用Requirejs进行模块化开发的相关知识就给大家介绍这么多,希望对大家有所帮助!

Javascript 相关文章推荐
jquery右下角弹出提示框示例代码
Oct 08 Javascript
eclipse如何忽略js文件报错(附图)
Oct 30 Javascript
jquery ui bootstrap 实现自定义风格
Nov 14 Javascript
angular.foreach 循环方法使用指南
Jan 06 Javascript
JavaScript插件化开发教程(六)
Feb 01 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
Apr 29 Javascript
JS表格组件神器bootstrap table详解(强化版)
May 26 Javascript
js正则表达式注册页面表单验证
Oct 11 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
Dec 01 Javascript
js实现二级导航功能
Mar 03 Javascript
清空元素html(&quot;&quot;) innerHTML=&quot;&quot; 与 empty()的区别和应用(推荐)
Aug 14 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
Oct 18 Javascript
jQuery基于json与cookie实现购物车的方法
Apr 15 #Javascript
Window.Open打开窗体和if嵌套代码
Apr 15 #Javascript
jQuery设置Cookie及删除Cookie实例分析
Apr 15 #Javascript
jQuery获取cookie值及删除cookie用法实例
Apr 15 #Javascript
jQuery通过写入cookie实现更换网页背景的方法
Apr 15 #Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
Apr 15 #Javascript
jQuery遍历DOM元素与节点方法详解
Apr 14 #Javascript
You might like
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
php中heredoc与nowdoc介绍
2014/12/25 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
基于javascript实现彩票随机数生成(简单版)
2020/04/17 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
移动端效果之IndexList详解
2017/10/20 Javascript
Nodejs模块的调用操作实例分析
2018/12/25 NodeJs
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
vue vant Area组件使用详解
2019/12/09 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
[01:04:20]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.29
2020/12/02 DOTA
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
路政管理专业推荐信
2013/11/11 职场文书
个人简历自我评价
2014/02/02 职场文书
道路交通安全实施方案
2014/03/12 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
活动总结格式范文
2014/04/26 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
同学聚会通知书
2015/04/20 职场文书
教师学习心得体会范文
2016/01/21 职场文书