前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Html中使用Requirejs进行模块化开发

在Html中使用Requirejs进行模块化开发

作者头像
用户1154259
发布2018-01-17 15:05:10
1.4K0
发布2018-01-17 15:05:10
举报

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

如何使用requirejs加载html

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

如何下载text插件

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

代码语言:javascript
复制
npm install requirejs/text

第二种方法,也可以直接去官方github上面直接下载。 直接拷贝内容到text.js中即可。

如何安装text插件

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

代码语言:javascript
复制
requirejs.config({
    baseUrl: './',
    paths: {
        'text':path+'/require/text',
        ...
    },
    shim: {
        ...
    }
});

也可以直接放在baseUrl里面。

如何使用text

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

代码语言:javascript
复制
define(function(require){
    var html = require("text!html/test.html");
    console.log(html);
});

或者

代码语言:javascript
复制
define(["text!html/test.html"],function(html){
    console.log(html);
});

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

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

举个栗子:

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

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

代码语言:javascript
复制
<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插件以后,就可以这样了:

代码语言:javascript
复制
<html>
<body>
<nav>
    导航按钮1、导航按钮2、导航按钮3
</nav>

<div id="target"></div>
</body>
</html>

然后在对应的模块中:

代码语言:javascript
复制
$('#target').html(require("text!目标按钮对应的页面.html"));

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

不过需要注意的是:这种方式会导致Jquery绑定的事件失效——所以一定要在html()方法后面,重新绑定下事件。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-04-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何使用requirejs加载html
    • 如何下载text插件
      • 如何安装text插件
        • 如何使用text
        • 如何进行html的模块化开发?
          • 举个栗子:
            • 不过需要注意的是:这种方式会导致Jquery绑定的事件失效——所以一定要在html()方法后面,重新绑定下事件。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档