中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用requirejs模塊化開發多頁面一個入口js

發布時間:2021-08-09 14:14:39 來源:億速云 閱讀:136 作者:小新 欄目:web開發

這篇文章主要為大家展示了“如何使用requirejs模塊化開發多頁面一個入口js”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何使用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”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尼玛县| 乌鲁木齐市| 长白| 宿迁市| 台州市| 股票| 宁德市| 乌鲁木齐市| 锦屏县| 成安县| 沭阳县| 双流县| 瑞丽市| 定兴县| 克东县| 滨海县| 郓城县| 樟树市| 红安县| 遂川县| 嘉善县| 鞍山市| 黔东| 宣威市| 化州市| 商河县| 客服| 丽江市| 贵州省| 南昌市| 麻栗坡县| 墨玉县| 越西县| 萍乡市| 贵阳市| 连平县| 甘谷县| 绥芬河市| 姜堰市| 泗水县| 恩平市|