在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 相关文章推荐
选择TreeView控件的树状数据节点的JS方法(jquery)
Feb 06 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
Aug 02 Javascript
JavaScript操作HTML元素和样式的方法详解
Oct 21 Javascript
分享JavaScript与Java中MD5使用两个例子
Dec 23 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
May 10 Javascript
前端开发必知的15个jQuery小技巧
Jan 22 Javascript
angular.js实现购物车功能
Oct 23 Javascript
基于vue2实现上拉加载功能
Nov 28 Javascript
使用p5.js临摹动态图片
Nov 04 Javascript
node后端服务保活的实现
Nov 10 Javascript
浏览器JavaScript调试功能无法使用解决方案
Sep 18 Javascript
vue-cli 关闭热更新操作
Sep 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获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
PHP flush()与ob_flush()的区别详解
2013/06/03 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
驱动事件的addEvent.js代码
2007/03/27 Javascript
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
详解vue-router 初始化时做了什么
2018/06/11 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
Python中的默认参数详解
2015/06/24 Python
Python中的日期时间处理详解
2016/11/17 Python
python实现点对点聊天程序
2018/07/28 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
python之array赋值技巧分享
2019/11/28 Python
Python csv文件记录流程代码解析
2020/07/16 Python
基于Python正确读取资源文件
2020/09/14 Python
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
怎样声明子类
2013/07/02 面试题
电子商务专业毕业生工作推荐信
2013/11/17 职场文书
党员一句话承诺大全
2014/03/28 职场文书
事业单位个人总结
2015/02/12 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
Golang实现AES对称加密的过程详解
2021/05/20 Golang
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android