在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 相关文章推荐
myFocus slide3D v1.1.0 使用方法与下载
Jan 12 Javascript
javascript面向对象编程代码
Dec 19 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
Mar 31 Javascript
JS代码同步文本框内容的实例方法
Jul 12 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
May 23 Javascript
Angular.js基础学习之初始化
Mar 10 Javascript
详解Angular2 关于*ngFor 嵌套循环
May 22 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
Sep 23 Javascript
JavaScript引用类型Array实例分析
Jul 24 Javascript
vue+animation实现翻页动画
Jun 29 Javascript
微信小程序通过websocket实时语音识别的实现代码
Aug 19 Javascript
Vue3 实现双盒子定位Overlay的示例
Dec 22 Vue.js
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
PHP4实际应用经验篇(4)
2006/10/09 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
node.js中的http.request方法使用说明
2014/12/14 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
jQuery表单验证插件解析(推荐)
2016/07/21 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
2017/12/26 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
Apache如何部署django项目
2017/05/21 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
2019/08/22 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
tensorflow 只恢复部分模型参数的实例
2020/01/06 Python
Python中itertools的用法详解
2020/02/07 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
艺术学院毕业生自荐信
2014/07/05 职场文书
质量在我心中演讲稿
2014/09/02 职场文书
2014年机关党建工作总结
2014/11/11 职场文书
事业单位聘任报告
2015/03/02 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript