全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

使用requirejs模块化开发多页面一个入口js的使用方式

描述

知道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库使用】  # 加载  # 就会  # 小编  # 都有  # 在这里  # 都要  # 也没  # 就有  # 在此  # 有很多  # 不需要  # 要去  # 也很  # 给大家  # 考虑到  # 到时候  # 都得  # 都把  # 所述  # 给我留言 


相关文章: 如何快速搭建高效WAP手机网站?  如何选择CMS系统实现快速建站与SEO优化?  网站制作难吗安全吗,做一个网站需要多久时间?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  建站之星如何优化SEO以实现高效排名?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  股票网站制作软件,网上股票怎么开户?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  C++用Dijkstra(迪杰斯特拉)算法求最短路径  建站之星安装步骤有哪些常见问题?  如何在阿里云虚拟服务器快速搭建网站?  如何高效配置IIS服务器搭建网站?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  微信h5制作网站有哪些,免费微信H5页面制作工具?  seo网站制作优化,网站SEO优化步骤有哪些?  制作表格网站有哪些,线上表格怎么弄?  如何在IIS中配置站点IP、端口及主机头?  如何选择高效便捷的WAP商城建站系统?  大型企业网站制作流程,做网站需要注册公司吗?  如何快速查询域名建站关键信息?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  黑客如何通过漏洞一步步攻陷网站服务器?  ,在苏州找工作,上哪个网站比较好?  宝塔新建站点报错如何解决?  网站app免费制作软件,能免费看各大网站视频的手机app?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何配置IIS站点权限与局域网访问?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何彻底卸载建站之星软件?  公司网站制作价格怎么算,公司办个官网需要多少钱?  建站主机选购指南:核心配置优化与品牌推荐方案  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  香港服务器租用每月最低只需15元?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  如何访问已购建站主机并解决登录问题?  如何快速配置高效服务器建站软件?  装修招标网站设计制作流程,装修招标流程?  如何选择美橙互联多站合一建站方案?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  网站制作需要会哪些技术,建立一个网站要花费多少?  建站之星如何保障用户数据免受黑客入侵?  教学论文网站制作软件有哪些,写论文用什么软件 ?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  一键网站制作软件,义乌购一件代发流程?  如何用wdcp快速搭建高效网站?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  如何用西部建站助手快速创建专业网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。