来自 奥门威尼斯网址 2019-12-23 06:47 的文章
当前位置: 威尼斯国际官方网站 > 奥门威尼斯网址 > 正文

js使用方法总结

 

生机勃勃、为何要运用require.js

 //  main.js
require.config({
  shim: {
    'app': { //这个键名为要载入的目标文件的文件名,不能随便命名。
      exports: 'sayHello' //exports的值为my.js提供的 对外接口的名称
    }
  }
});

require(['app'], function(sayHello) {
    alert(sayHello())  
})
 // app.js
function sayHi(name){
    alert('Hi '+name);
}
function sayHello(name){
    alert('Hiello  '+name);
}

// main.js  
  require.config({
    shim: {
      app: {
        init: function() { //这里使用init将2个接口返回
          return {
            sayHi: sayHi,
            sayHello: sayHello
          }
        }
      }
    }
  });

  require(['app'], function(a) {
    a.sayHi('zhangsan');
    a.sayHello('lisi');
  });

      require.js,正是为着化解那多少个难题:

五、英特尔模块的写法

  

 // main.js
require(['math'], function (math){
  alert(math.add(1,1));
});

      导出贰个函数,意味着咱们收获了八个javaScript类

  • 生龙活虎种是逐条钦赐路径

    require.config({   paths: {     "jquery": "lib/jquery.min",     "underscore": "lib/underscore.min",     "backbone": "lib/backbone.min"   } });

  •  另后生可畏种则是平素退换基目录(baseUrl)。

    require.config({   baseUrl: "js/lib",   paths: {     "jquery": "jquery.min",     "underscor: "underscore.min",     "backbone": "backbone.min"   } });

  •      假诺某个模块在另意气风发台主机上,也能够一向钦赐它的网站,举个例子

    require.config({   paths: {     "jquery": ""   } });

 

三、主模块的写法

  假如那些模块还依赖别的模块,那么define(卡塔尔国函数的率先个参数,必需是一个数组,指明该模块的信赖性。

    上边包车型大巴代码给出了多个模块的文件名,路线默许与main.js在同三个索引(js子目录)。借使那些模块在别的目录,譬如js/lib目录,则有二种写法。

 

四、require.config()方法

      加载require.js现在,下一步将要加载我们和好的代码了,也正是进口,能够叫主模块,假设文件名字为main.js,写成上边那样就足以了:

  加载方法如下:

// math.js
define(function (){
  var add = function (x,y){
    return x+y;
  };
  return {
    add: add
  };
});
 //  app.js
 function sayHello(name){
  alert('Hi '+name);
}
 require(['jquery'], function ($){
   alert($);
});

     当require(卡塔尔(英语:State of Qatar)函数加载上边这几个模块的时候,就能够先加载myLib.js文件。

 

   require.config({  

    shim: {  
      'jquery.ui.core': ['jquery'],  //表示在jquery导入之后导入
      'jquery.ui.widget': ['jquery'],  
      'jquery.ui.mouse': ['jquery'],  
      'jquery.ui.slider':['jquery']
     },  
    paths : {    
       jquery : 'jquery-2.1.1/jquery',    
       domReady : 'require-2.1.11/domReady',    
       'jquery.ui.core' : 'jquery-ui-1.10.4/development-bundle/ui/jquery.ui.core',    
       'jquery.ui.widget' : 'jquery-ui-1.10.4/development-bundle/ui/jquery.ui.widget',    
       'jquery.ui.mouse' : 'jquery-ui-1.10.4/development-bundle/ui/jquery.ui.mouse',    
       'jquery.ui.slider' : 'jquery-ui-1.10.4/development-bundle/ui/jquery.ui.slider' 
        }
  });    

  require(['jquery', 'domReady','jquery.ui.core','jquery.ui.widget','jquery.ui.mouse','jquery.ui.slider'],    function($) {            
      $("#slider" ).slider({              
       value:0,           
       min: 0,           
       max: 4,           
       step: 1,           
       slide: function( event, ui ) {}     
        });    
   });

      假如主模块注重于jQuery能够如此写

<script src="js/require.js" data-main="js/main"></script>    .js后缀可以省略
 <script src="js/require.js" defer async="true" ></script>

  

 

 

六、加载非规范的模块(shim的利用格局)

      第一步,去官方网站下载最新版本,直接放到页面进行加载

 define(['myLib'], function(myLib){
  function foo(){
    myLib.doSomething();
  }
  return {     //返回模块中的函数
    foo : foo
  };
});

  

      不过就算在my.js中写了广大function,整合成三个function有一点劳苦,想一向导出?方法如下:

     具体来讲,就是模块必得接受一定的define(卡塔尔(英语:State of Qatar)函数来定义。假使一个模块不依据其余模块,那么能够直接定义在define(卡塔尔(قطر‎函数之中。

      async属性注解这一个文件需求异步加载,幸免网页失去响应。IE不支持那性格情,只支持defer,所以把defer也写上。

  1.   完毕js文件的异步加载,防止网页失去响应;  
  2.   管理模块之间的依靠,便于代码的编辑撰写和护卫。
require.config({
  paths: {
    "jquery": "jquery.min",
    "underscore": "underscore.min",
    "backbone": "backbone.min"
  }
});

      首先贰个页面若是在加载四个js文件的时候,浏览器会结束网页渲染,加载文件越多,网页失去响应的小时就能越长;其次,由于js文件之间存在依据关系,因而必得从严保险加载顺序,当正视关系很复杂的时候,代码的编纂和掩护都会变得紧Baba。

     require.js加载的模块,接纳英特尔典型。也正是说,模块必需根据英特尔的鲜明来写。

      加载这几个文件恐怕会招致网页失去响应,能够将它内置页面包车型大巴最底层加载,也能够那样写 

 

  

 <script src="js/require.js"></script>  

     shim的有序导入

二、require.js的加载

本文由威尼斯国际官方网站发布于奥门威尼斯网址,转载请注明出处:js使用方法总结

关键词: