在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数独游戏解析(一)-页面布局
Nov 05 Javascript
jquery实现checkbox 全选/全不选的通用写法
Feb 22 Javascript
javascript学习笔记(一)基础知识
Sep 30 Javascript
AngularJS基础知识笔记之过滤器
May 10 Javascript
JavaScript数据类型转换的注意事项
Jul 31 Javascript
基于JavaScript实现树形下拉框
Aug 10 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
Aug 26 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
Jun 01 Javascript
浅谈Vue数据绑定的原理
Jan 08 Javascript
用webpack4开发小程序的实现方法
Jun 04 Javascript
在微信小程序中使用mqtt服务的方法
Dec 13 Javascript
JS异步宏队列与微队列原理区别详解
Jul 02 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验证复选框有效性的示例
2013/11/13 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
读jQuery之五(取DOM元素)
2011/06/20 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
2014/04/25 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
2017/02/13 Javascript
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
python中global用法实例分析
2015/04/30 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
如何安装并使用conda指令管理python环境
2019/07/10 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
Html5获取高德地图定位天气的方法
2019/12/26 HTML / CSS
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
求职信模版
2013/11/30 职场文书
大学生职业生涯规划书汇总
2014/03/20 职场文书
演讲稿格式
2014/04/30 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
简单租房协议书
2014/10/21 职场文书
出国签证在职证明范本
2014/11/24 职场文书
python绘制箱型图
2021/04/27 Python
UNION CREATIVE《Re:从零开始的异世界生活》雷姆手办
2022/03/20 日漫
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android