>웹 프론트엔드 >JS 튜토리얼 >javascript require.js의 구체적인 사용법

javascript require.js의 구체적인 사용법

小云云
小云云원래의
2018-01-04 09:22:271882검색

이 글은 주로 JavaScript의 고급 모듈형 require.js의 구체적인 사용법을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Require.js:

RequireJS는 매우 작은 자바스크립트 모듈 로딩 프레임워크이자 AMD(Asynchronous Module Definition, 비동기 모듈 로딩 메커니즘) 사양을 가장 잘 구현한 것 중 하나입니다. 최신 버전의 requireJS는 14k로만 압축되어 매우 가볍습니다. requireJS를 사용하면 프런트엔드 코드의 품질이 확실히 향상됩니다.

먼저 일반 페이지를 살펴보겠습니다. js loading


<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="js/index02.js" ></script>
  </head>
  <body>
    <h1>this is a page.</h1>
  </body>
</html>

실행 결과:

이때, 팝업창을 동작하지 않으면 페이지가 계속 진행되지 않습니다. 로드되고 페이지 콘텐츠가 없으면 이는 우리가 달성하려는 결과가 아닙니다.

다음으로 require.js를 사용하여 작동합니다:

index.html


<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <script src="js/require2.1.11.js"></script>
    <script type="text/javascript">
      require(["js/index","js/index01"],function(){
        console.log("当js加载成功后会执行的函数");
      },function(){
        console.log("当js加载失败后会执行的函数");
      });
    </script>
  </head>
  <body>
  </body>
</html>

index.js


define(function(){
  console.log("this is a test!");
  function test(){
    console.log("haha,i am a test!");
  }
  test();
});

우선, test02.js는 더 이상 페이지에 가져오지 않으며, requireJS만 가져옵니다. 두 번째로 javascript에서 require() 메소드를 사용하고 매개변수 배열을 전달합니다. 실제 매개변수는 가져오려는 js 파일의 [경로 + 파일 이름입니다.

이번 실행 결과:


이 때 페이지의 내용이 표시된 것을 볼 수 있습니다. 이전처럼 js가 완료된 후 페이지가 로드될 때까지 기다리는 대신, 페이지가 로드된 후에만 js 코드가 실행되므로 작업 효율성이 크게 향상됩니다.

위 코드에 따르면 requirejs의 기본 API를 분석할 수 있습니다.

requireJS는 정의, require, requirejs

  1. require==requirejs의 세 가지 변수를 정의합니다. 일반적으로 require를 사용하는 것이 더 짧습니다.

  2. define은 모듈을 정의하는 데 사용됩니다.

  3. require는 종속 모듈(정의된 모듈 참조)을 로드하고 로드 후 콜백 함수를 실행합니다.

require에는 세 가지 매개 변수가 있습니다.


require(["js/index","js/index01"],function(){
        console.log("当js加载成功后会执行的函数");
      },function(){
        console.log("当js加载失败后会执行的函数");
      });
//第一个参数:定义require中的依赖,参数必须是数组形式,即使只有一个依赖,也必须使用数组形式传参。
//第二个参数:是一个回调函数,用来处理加载完毕后的逻辑,当所有模块加载完成后触发
//第三个参数:也是一个回调函数,用来处理模块加载失败后的情况。如上面代码,js中没有定义index01.js这个文件,所以出调用这个回调函数。

네트워크 파일 로딩

로컬 js 파일을 로딩하기 전인데 가끔 네트워크에 있는 파일을 로딩해야 할 때가 있는데 어떻게 로딩해야 할까요? 이제 인터넷에서 js 파일을 로드하는 방법을 소개하겠습니다.

jquery.js 파일을 로드하는 경우를 예로 들어 보겠습니다.


//百度cdn公共库jQuery地址:   http://apps.bdimg.com/libs/jquery/2.1.1/jquery.js 
//jQuery官方地址:      https://code.jquery.com/jquery-3.1.1.js
//注意:网络上去取时不能加后缀,否则取不到
require.config({
  paths : {
    //为网络上的库去一个名字:jquery
    "jquery" : ["https://code.jquery.com/jquery-3.1.1"]
  }
});

//
require(["jquery","js/test01","js/test02"],function(){
  alert("页面加载成功~~");
},function(){
  alert("页面加载失败~~")
});

인터넷에서 파일을 가져올 때 주의할 점:

1. 매개변수는 객체입니다
2. 경로의 값도 객체입니다
3. 네트워크에서 라이브러리 이름을 선택할 때는 임의적이지만 다른 사람이 네트워크가 무엇인지 알 수 있도록 선택하는 것이 좋습니다. 리소스는 이름을 통해
4 되며, 라이브러리의 값은 배열이므로 네트워크 이상을 방지하기 위해 동시에 여러 파일을 쓸 수 있습니다. 5. 특별한 주의: 네트워크 리소스 경로에는 접미사가 포함될 수 없습니다. 6. 네트워크를 먼저 네트워크에 연결할 수도 있습니다. 얻을 수 없는 경우 로컬에서 가져와 로컬 서비스에 대한 부담을 줄입니다(프로젝트 최적화에 속함).

require.config({
  paths : {
    //这样配置,减轻本地服务器的压力
    "jquery" : ["https://code.jquery.com/jquery-3.1.1.js","js/jquery-1.8.3"]
  }
});

//
require(["jquery","js/test01","js/test02"],function(){
  alert("页面加载成功~~");
},function(){
  alert("页面加载失败~~")
});

마찬가지로 경로에 로컬 구성을 추가할 수도 있습니다.

require.config({
  paths : {
    //这样配置,减轻本地服务器的压力
    "jquery" : ["https://code.jquery.com/jquery-3.1.1","js/jquery-1.8.3"],
    //将本地的js文件同样配置,之后引用
    "test01" : ["js/test01"],
    "test02" : ["js/test02"]
  }
});

//
require(["jquery","test01","test02"],function(){
  alert("页面加载成功~~");
},function(){
  alert("页面加载失败~~")
});

위의 예에서 require.config 구성이 모든 페이지에 추가되면 확실히 매우 촌스러워 보일 것입니다. . , requirejs는 "마스터 데이터"라는 기능을 제공합니다. 먼저 main.js를 생성합니다:

require.config({
  paths : {
    //这样配置,减轻本地服务器的压力
    "jquery" : ["https://code.jquery.com/jquery-3.1.1","js/jquery-1.8.3"],
    //将本地的js文件同样配置,之后引用
    "test01" : ["js/test01"],
    "test02" : ["js/test02"]
  }
});

그런 다음 페이지에서 다음과 같은 방식으로 requirejs를 사용합니다.

<script type="text/javascript" src="js/require2.1.11.js" ></script>
<script type="text/javascript" src="js/main.js" ></script>
<script type="text/javascript">

  require(["jquery","t1","t2"],function(){
    alert("页面加载成功~~");
  },function(){
    alert("页面加载失败~~")
  });

</script>

공식적으로 제공되는 방법 태그 속성:

<script data-main="js/main" src="js/require2.1.11.js" ></script>

모든 구성과 가져온 j를 main.js에 넣어 해당 태그만 페이지에 필요하도록 합니다.

코드 데모는 다음과 같습니다.

//test01.js--定义一个js模块
define(function(){
  function test(){
    console.log("this is test01.js");
  }
  test();

  $("p").css("color","#DB7093");
});

//main.js--requirejs的全局配置
require.config({
  paths:{
    "jquery":["jquery-1.8.3"],
    "test":["test01"]
  },
  shim:{
    "test":["jquery"]
  }
});
require(["test"],function(){
  console.log("success!");
});

//index.html--此时,引入js文件只需一行代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" data-main = "js/main" src="js/require2.1.11.js" ></script>
  </head>
  <body>
    <p>i am liyanan and this is a testn Page.</p>
  </body>
</html>

관련 권장 사항:


Require.js 사용 방법 공유

require.js 경로 구성 및 cs s 자세한 설명 소개 방법

require.js를 어떻게 사용하나요? JS를 더 빠르게 로드하세요

위 내용은 javascript require.js의 구체적인 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.