博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习 require.js
阅读量:6319 次
发布时间:2019-06-22

本文共 1890 字,大约阅读时间需要 6 分钟。

学习链接

注意点:
require.js 是一个工具库,主要用于客户端模块管理,它可以让客户端的代码的分成一个个模块,实现异步或动态加载,从而提高代码的性能和可维护性。

require的基本思想:通过 define方法,将代码定义成模块,通过require方法,实现代码的模块的加载复制代码

1.将require.js 嵌入网页

复制代码

data-main属性的作用是,指定网页程序的主模块。在上例中,就是js目录下面的main.js,这个文件会第一个被require.js加载。由于require.js默认的文件后缀名是js,所以可以把main.js简写成main。

2.定义define模块 如果被定义的模块是一个独立模块,不需要依赖任何其他模块,可以直接用define方法生成

define(function(){    //定义单独的模块    return{        method1:function(){},        method2:function(){}    }})复制代码

定义相互依赖模块

define(['module1', 'module2'], function(m1, m2) {    return {        method: function() {            m1.methodA();			m2.methodB();        }    };});复制代码

3.使用require方法 调用模块 require 方法用于调用模块

require(['foo', 'bar'], function ( foo, bar ) {        foo.doSomething();});复制代码

4.加载非规范的模块

require.config({       shim: {       'underscore':{       exports: '_'       },       'backbone': {       deps: ['underscore', 'jquery'],       exports: 'Backbone'       }       }   });复制代码

require.config()接受一个配置对象,这个对象除了有前面说过的paths属性之外,还有一个shim属性,专门用来配置不兼容的模块。具体来说,每个模块要定义(1)exports值(输出的变量名),表明这个模块外部调用时的名称;(2)deps数组,表明该模块的依赖性。

// 全局配置require.config({    // 根路径设置,paths下面全部都是根据baseUrl的路径去设置    baseUrl:'./js/',    paths:{        // 引入jQuery        jquery:'plugin/jquery',        // 引入bootstrap        bootstrap:'plugin/bootstrap',        // a.js        a:'a',        // b.js        b:'b',        // 引入c.js        c:'c'    },    // 用来配置不兼容的模块,意思是:该模块没有module.exports,    // jquery就有module.exports输出值    shim:{        //bootstrap没有module.exports输出值,所以得放在shim        bootstrap:{            //bootstrap需要依赖jquery,所以得加deps            deps:["jquery"]            // 如果该模块加载进来,需要输出一个值,那就用exports来设置,这里不用设置            // exports:''        }    },    //map"告诉RequireJS在任何模块之前,都先载入这个模块    map: {        // 这里没有设置,举个例子        // '*': {            // 'css': 'plugins/require-css/css'        // }    }})复制代码

转载于:https://juejin.im/post/5ccfc167f265da035d0c8f68

你可能感兴趣的文章
linux 0.11 源码学习(七)
查看>>
函数模板的简单用法
查看>>
利用 LINQ的skip和Take 方法对List实现分页效果
查看>>
python 中的列表解析和生成表达式 - 转
查看>>
jQuery数组的遍历 function的加载
查看>>
杂记~~~MFC SOCKET
查看>>
AWK文本处理工具(Linux)
查看>>
完成评论功能
查看>>
VC 输入法注入源码
查看>>
BinaryTree I
查看>>
IE6-IE9兼容性问题列表及解决办法_补充之四:HTC (Html Components) 功能逐渐被IE抛弃...
查看>>
Verilog与C/C++的一些区别
查看>>
DIV焦点事件详解 --【focus和tabIndex】
查看>>
vim php代码规范
查看>>
数据结构与算法:二分查找
查看>>
Redis实现广告缓存、并完善缓存击穿
查看>>
CSS外边距折叠引发的问题
查看>>
jquery-datatables 销毁重新渲染
查看>>
Centos7如何开启端口
查看>>
什么是区块链共识?
查看>>