描述

知道requirejs的都知道,每一个页面需要进行模块化开发都得有一个入口js文件进行模块配置。但是现在就有一个很尴尬的问题,如果页面很多的话,那么这个data-main对应的入口文件就会很多。理论这样其实也没什么,但是到后面用grunt进行合并压缩就会有很多入口js,虽然这个入口js都把配置的模块内容都压缩到里面了,但是各个入口合并压缩后的文件中其实都有很多重合的代码,所以考虑到这个就想到把所以的入口文件都统一了,使用一个,到时候用grunt合并压缩也只有这么一个入口文件,也很方便。
实现原理
1.页面引入requirejs 和 设置id和当前页面信息的属性
<script src="/res/js/require.js" data-main="/res/js/require.config" id="current-page" current-page ="news" target-module="/res/js/module/newsCtrl" defer async="true" ></script>
2、编写require.config.js 根据不同的页面去初始化不同的页面信息
/** * 1、所有页面使用公共的require配置
* 2、根据current-page去加载相应地模块,不需要的模块不要去加载
* 3、每个模块都要按约定去对外暴露一个init的初始化方法,用于页面信息加载时间监听
*
*/
require.config({
urlArgs: "ver=1.0_" + (new Date).getTime(),
paths: {
"jquery": "/res/js/base/jquery-1.11.3.min",
"vue":'/res/js/base/vue.min',
"common": "/res/js/widgets/common"
},
shim: {
'scroll': {
deps: ['jquery'],
exports: 'jQuery.fn.scroll'
},
'vue':{
exports:'vue'
},
'common':['jquery']
}
});
require(["jquery"], function ($) {
require(["common"], function (common) {
var currentPage = $("#current-page").attr("current-page");
var targetModule = $("#current-page").attr("target-module");
if (targetModule) {
// 页面加载完毕后再执行相关业务代码比较稳妥
$(function () {
require([targetModule], function (targetModule) {
// 不要在这里写业务代码
//全部统一调用init方法
//也就是每个模块都暴露一个init方法用于事件监听,页面内容加载等
targetModule.init(currentPage);
});
});
return;
}
});
});
3、定义模块,实现初始化init方法进行事件监听和页面信息初始化
define(['jquery', "common"], function ($, common) {
var newCtrl = {};
newCtrl.init = function (page) {
common.info("开始初始化页面信息");
};
newCtrl.login = function () {};
return newCtrl;
});
以上所述是小编给大家介绍的使用requirejs模块化开发多页面一个入口js的使用方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# requirejs模块化开发
# 在Html中使用Requirejs进行模块化开发实例详解
# 详解JavaScript模块化开发
# JavaScript的模块化开发框架Sea.js上手指南
# Seajs 简易文档 提供简单、极致的模块化开发体验
# JavaScript模块化开发之SeaJS
# 了解Javascript的模块化开发
# javascript 构建模块化开发过程解析
# 深入探寻seajs的模块化与加载方式
# seajs和requirejs模块化简单案例分析
# 基于RequireJS和JQuery的模块化编程日常问题解析
# 基于RequireJS和JQuery的模块化编程——常见问题全面解析
# JavaScript 模块化开发实例详解【seajs、requirejs库使用】
# 加载
# 就会
# 小编
# 都有
# 在这里
# 都要
# 也没
# 就有
# 在此
# 有很多
# 不需要
# 要去
# 也很
# 给大家
# 考虑到
# 到时候
# 都得
# 都把
# 所述
# 给我留言
相关文章:
建站之星代理费用多少?最新价格详情介绍
如何通过IIS搭建网站并配置访问权限?
C#怎么创建控制台应用 C# Console App项目创建方法
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
如何用低价快速搭建高质量网站?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
黑客如何通过漏洞一步步攻陷网站服务器?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
如何通过服务器快速搭建网站?完整步骤解析
网站app免费制作软件,能免费看各大网站视频的手机app?
如何快速生成可下载的建站源码工具?
如何配置FTP站点权限与安全设置?
小型网站制作HTML,*游戏网站怎么搭建?
如何用免费手机建站系统零基础打造专业网站?
广州建站公司哪家好?十大优质服务商推荐
建站主机类型有哪些?如何正确选型
如何在万网主机上快速搭建网站?
建站之星如何一键生成手机站?
移民网站制作流程,怎么看加拿大移民官网?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
建站之星安装路径如何正确选择及配置?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
html制作网站的步骤有哪些,iapp如何添加网页?
网站制作话术技巧,网站推广做的好怎么话术?
如何快速生成高效建站系统源代码?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
h5在线制作网站电脑版下载,h5网页制作软件?
,有什么在线背英语单词效率比较高的网站?
音乐网站服务器如何优化API响应速度?
网站制作网站,深圳做网站哪家比较好?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何快速搭建高效WAP手机网站吸引移动用户?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
高防服务器如何保障网站安全无虞?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
c# 在高并发场景下,委托和接口调用的性能对比
建站之星代理商如何保障技术支持与售后服务?
代购小票制作网站有哪些,购物小票的简要说明?
如何挑选优质建站一级代理提升网站排名?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
三星网站视频制作教程下载,三星w23网页如何全屏?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
,怎么用自己头像做动态表情包?
定制建站哪家更专业可靠?推荐榜单揭晓
如何快速查询域名建站关键信息?
如何高效利用200m空间完成建站?
*请认真填写需求信息,我们会在24小时内与您取得联系。