Web前端开发requireJs学习研究(一)

2024-09-06 16:38

本文主要是介绍Web前端开发requireJs学习研究(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

什么是requireJs?有什么用?用了有什么好处?马上稍等一一解答....

    最早的前端Js代码可能如下面这样的代码,相信大家都见过,如下面这段示例代码..
    //文件名字 calc.js//内容如下:function add(x,y){return x+y;};function sub(x,y){return x-y;};.....
然后在需要用到这些方法的地方,引用js
<script language="JavaScript" src="calc.js"></script>
// 假若还依赖其他js<script src="1.js"></script><script src="2.js"></script><script src="3.js"></script><script src="4.js"></script><script src="5.js"></script><script src="6.js"></script>
这样以来,有以下几点问题:
1.页面要等待js代码加载,完成才能加载
2.由于js文件之间存在依赖关系,因此必须严格保证加载顺序,依赖性最大的模块一定要放到最后加载,当依赖关系很复杂的时候,代码的编写和维护都会变得困难。
3.空间污染

requireJS就是为了解决这两个问题而来
1)实现js文件的异步加载,避免网页失去响应;
2)管理模块之间的依赖性,便于代码的编写和维护,独立变量空间,防止污染

如何来使用requireJs?

1.创建test.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title1</title ></script>
</head>
<body>
body2
//也许你更喜欢,把javascript放这里,原因就不说了..
<script  data-main="main" 
src="http://apps.bdimg.com/libs/require.js/2.1.9/require.min.js"  >
</body>
</html>

2.创建main.js

require.config({baseUrl:"../js",//指定js代码的根路径paths : {"jquery" ://两个参数,如果CDN加载失败,就采用第二个参数,加载本地资源 ["http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min","util/jquery.min"],"jquery-cookie":["http://apps.bdimg.com/libs/jquery.cookie/1.4.1/jquery.cookie.min"],'jquery.tabs': "util/jquery.tabs.min"},shim: {//用于处理非AMD规范的JavaScript代码,什么是AMD规范?请百度,google..'jquery.tabs': {deps: ['jquery'],//此模块依赖的其它模块exports: 'jQuery.fn.tabs'//此模块的引用名字,eg:jquery用$}}
});
require(["jquery","j1"],function($,J1){//main.js运行后,jquery模块就有了,这里直接注入即可,j1同理,分别对应两个模块的引用对象function Controller() {// 继承于J1类J1.init.call(this);alert(this.add(3,4));//调用继承于J1.js的add函数alert(this.sub(4,3));//调用继承于J1.js的sub函数alert(this.type(3)); //调用继承于J1.js的type函数this.init();//调用本地的init函数}Controller.prototype.init=function () {alert("init load");}//初始化Controller类$(document).ready(function () {new Controller;});
});

3.创建J1.js

define(["jquery"],function ($){//注入jquery模块function Calc() {this.add = function (x,y){return x+y;};this.sub=function (x,y) {return x-y;};this.type=function (x) {return $.type(x);//用jquery的方法}};return {init: Calc //返回此Calc类,让其它模块继承};
});

简单描述以下上述代码的意思

html页面上的:
<script  data-main="main" src="http://apps.bdimg.com/libs/require.js/2.1.9/require.min.js"  ></script>
这个引用百度CDN的requirejs文件,加载完毕后,加载同级目录下的main.js文件。熟悉Java的朋友,可以简单吧requireJs看做是个spring,管理依赖注入的容器

mian.js:这个主要是实现,把项目依赖的js文件,让requirejs管理起来,注入到对应的模块去使用,

J1.js:主要写了一些公共的方法,让继承它的子类去使用。通过define定义一个模块,第一个参数,指定此模块的依赖其它的模块,第二个参数,指 注入成功后,的回调函数处理

上述代码,如有问题,欢迎纠正,学习阶段…………….

这篇关于Web前端开发requireJs学习研究(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1142552

相关文章

CSS place-items: center解析与用法详解

《CSSplace-items:center解析与用法详解》place-items:center;是一个强大的CSS简写属性,用于同时控制网格(Grid)和弹性盒(Flexbox)... place-items: center; 是一个强大的 css 简写属性,用于同时控制 网格(Grid) 和 弹性盒(F

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行