我的编程空间,编程开发者的网络收藏夹
学习永远不晚

RequireJS如何按需加载样式文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

RequireJS如何按需加载样式文件

小编给大家分享一下RequireJS如何按需加载样式文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

样式模块化的好处

RequireJS被设计用来加载JavaScript模块的,可是大家有没有联想到其实样式文件可以进行模块化处理,那么问题来了,RequireJS能不能像加载脚本文件一样来加载样式文件呢?

虽然RequireJS本身没有实现这个功能,但官网推荐了一些常用的插件供我们使用,官网插件插件地址为:http://requirejs.org/docs/plugins.html,同时在github上也有社区大量贡献的插件:https://github.com/jrburke/requirejs/wiki/Plugins

当然除了引用第三方插件外,我们也可以动手自己写一个类似插件,不过我在这里要推荐一个很不错的样式模块加载器require-css,其官网地址为:https://github.com/guybedford/require-css。

那么我们再来谈谈,样式模块话的好处吧,和脚本模块化一样,样式模块化也可以做到按需加载,样式依赖,不过对我来说最大的好处是将脚本的管理放权到前端管理,为什么这么说呢? 以前我们添加样式文件都是通过link标签引入的,而被引入的文件基本上都是jsp、php等后台文件,这样对与后台不太熟悉的人来说,如果样式文件发生改变,都要麻烦后台开发人员。但是最懂样式的莫过于前端开发人员了。

require-css的使用介绍

下面我们通过一个简单的例子,来介绍下require-css的用法,首先下载require-css,去到上面给出的官网地址,在页面的右下角点击Download ZIP按钮,下载完成后解压,将css.js拷贝复制到项目中去。

这个简单示例的目录如下所示:

RequireJS如何按需加载样式文件

假设我们的目的是,通过加载util模块时,页面先加载其依赖的样式文件1.css。这个需求我们经常遇到,比如我们使用JqueryUI时,在加载其脚本模块时,在页面我们也会添加上link标签引入其相关的UI样式文件。

首先我们在project.html中引入RequireJS和指定配置文件(main.js)的位置。期代码如下所示:

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title>RequireJS简单示例</title>
</head>
<body>
  <p id="test">如何处理依赖问题</p>
  <script class="lazy" data-src="scripts/lib/jquery-1.11.0.min.js"></script>
  <script class="lazy" data-src="scripts/require.js" data-main="scripts/main"></script>
</body>
</html>

我们进入到main.js配置文件。main.js应该是页面的入口文件,在这个入口文件中,指定了入口文件需要加载的模块,同事也设置了RequireJS某些具体参数。其代码如下所示:


require.config({
  baseUrl: "scripts/",
  paths: {
    "util": "helper/util"
  },
  waitSeconds: 15,
  map: {
    '*': {
      'css': 'lib/css'
    }
  },
  shim : {
    'util': ['css!../style/1.css']
  }
});

require(["util"], function(util) {
  // todo
});

其中我们要特别注意map和shim的配置,"map"告诉RequireJS在任何模块之前,都先载入这个模块,这样别的模块依赖于css!../style/1.css这样的模块都知道怎么处理了,shim那时干什么用的呢?这这个示例中,他表示util这个模块在加载之前需要先加载1.css这个样式文件。当然我们也可以在Util模块里直接设置他的依赖,下面将会解释。

下面我们来看看util模块的代码,代码如下所示:

define(function(){
  //alert("Hello RequireJS!!");
  console.log($("#test").text());
});

这个模块很简单,就是通过jQuery获取页面id为test的值。并且在浏览器的控制台输出来。这里你可能感觉有点奇怪。为什么你使用了jQuery但是在依赖数组中且没有设置呢?正确的说,我们应该这样写:

define(['jquery'],function(){
  //alert("Hello RequireJS!!");
  console.log($("#test").text());
});

我这样做的目的是,用RequireJS打包时,不要将jquery打包进去,这样就可以减少文件的大小了。还有一个上面提出的问题,加入我不用shim这个配置时,可以向依赖JQuery一样,将样式文件写到define的依赖数组中去。其代码如下:

define(['css!../style/1.css'],function(){
  //alert("Hello RequireJS!!");
  console.log($("#test").text());
});

不过你应该一眼就能看出来,那种写法比较好吧,我比较推荐,将依赖写到shim配置中去。

一切配置就绪,在浏览器中打开project.html页面,运行结果如图所示:

RequireJS如何按需加载样式文件

以上是“RequireJS如何按需加载样式文件”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

RequireJS如何按需加载样式文件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何按需加载js文件

按需加载JS文件可优化网站性能,减少加载时间,降低内存使用,提升用户体验。通过动态脚本元素、异步加载和延迟加载等方法,可仅在需要时加载特定的JS文件。选择合适的方法取决于应用场景和性能目标。最佳实践包括仅加载必要的JS文件、使用CDN和缓存,并监控性能以进行优化。
如何按需加载js文件
2024-04-25

vue如何按需加载组件

Vue按需加载组件按需加载组件有助于优化Web应用程序性能,减少初始加载时间,提高响应能力。Vue提供代码分割和异步组件两种方法:代码分割:将应用程序拆分为小块,按需加载。异步组件:使用动态加载,在需要时加载组件。按需加载的优点包括:减少初始加载时间、提高响应能力和降低内存使用。但要注意初始加载代价、路由和缓存。最佳实践是仅对大型或不常用组件使用按需加载,并结合代码分割和异步组件。
vue如何按需加载组件
2024-04-26

如何按需加载框架组件

按需加载框架组件在需要时动态加载框架组件,有助于:减少页面加载时间提高应用程序性能增强灵活性通过代码分块、按需加载器或动态导入等方式实现。最佳实践包括:识别关键路径组件使用按需加载器谨慎选择代码分块粒度缓存加载的块监控加载时间适用于React、Angular、Vue.js等各种框架。
如何按需加载框架组件
2024-04-25

编程热搜

目录