• [JavaScript] requireJS基本使用


    requireJS 是一个 AMD 规范的模块加载器
    主要解决的js开发的4个问题
    1. 异步加载,防止阻塞页面渲染
    2. 解决js文件之间的依赖关系和保证js的加载顺序
    3. 按需加载

    来实现一个 require 的实例
    目录结构如下:

    
    


    - 首先我们现在 require.html 中将 requireJS 引入

    <script type=”text/javascript” defer async=”true” src=”./require.js” data-main=”js/init.js”></script>

    > - 为了防止加载的时候阻塞,需要异步进行加载
    ( async=”true” defer) 其中 defer 是为了兼容 ie 不识别 async 的兼容写法
    当然还有简单粗暴的方法,直接将文件加载放在最后执行
    > - 同时写入 data-main=’js/init.js’,这会在 requireJS 加载完成的时候将统一目录下的 indexJS 加载进入
    或者可以使用两条 script 引入
    类似这样:
    ```
    <script type=”text/javascript” defer async=”true” src=”./require.js”></script>
    <script type=”text/javascript” defer async=”true” src=”js/init.js”></script>
    ```

    - 接下来,打开 init.js

    进入文件路径的配置,其中 paths 是在 lib 下面的文件地址,baseUrl 是修改默认的根目录,shim 是指定插件引入的依赖文件否则会报错(bootstrap’JavaScript requires jquery)
    同时,由于 require 默认后面的后缀是.js 所以我们不能再加后缀,否则会报错

    baseUrl用于定位根目录,其他路径都是相对根目录,
    paths用来执行文件,或者也可以用来定位新路径

    将jquery和underscore引入,写个窗口拖动变色
    ```
    //require.config主要是用来对要加载文件的目录进行自定义
    require.config({
    baseUrl: 'js',
    paths: {
    "jquery": "../lib/jquery",
    "undersocre": "../lib/underscore",
    }
    })

    require(['jquery', 'underscore'], function ($, _) {
    $(window).resize(function () {

    var color = ["rgba(", Math.floor(Math.random() * 255), ",", Math.floor(Math.random() * 255), ",", Math.floor(Math.random() * 255), ")"];

    $(".background").css({
    position: "fixed",
    top: "0px",
    bottom: "0px",
    left: "0px",
    right: "0px",
    background: color.join("")
    });
    })
    });
    ```
    ...有点闪眼

    - 注册一个模块
    新建js/color.js
    ```
    define(function () {
    var color = ["rgba(", Math.floor(Math.random() * 255), ",", Math.floor(Math.random() * 255), ",", Math.floor(Math.random() * 255), ")"];

    return {
    color: color,
    }
    });
    ```
    结构



    - paths定义别名
    新建js/common/date/date.js , js/common/date/format.js
    ```
    require.config({
    baseUrl: 'js',
    paths: {
    "jquery": "../lib/jquery",
    "underscore": "../lib/underscore",
    "date": "./common/date", //对层级深的起个别名
    }
    })

    require(['jquery', 'underscore', 'color', 'date/date', 'date/format'], function ($, _, c, d, f) {
    ......

    console.log(d.date);
    console.log(f.format(d.date))
    });
    ```

    
    

    [avascript模块化编程(三):require.js的用法]
    http://www.ruanyifeng.com/blog/2012/11/require_js.html
  • 相关阅读:
    Android中隐藏顶部状态栏的那些坑——Android开发之路3
    仿喜马拉雅实现ListView添加头布局和脚布局
    Android中点击隐藏软键盘最佳方法——Android开发之路4
    Git从码云Clone代码到本地
    Android中webView和网页的交互
    Android工程师常见面试题集
    协调者布局:CoordinatorLayout
    如何保证Service在后台不被kill
    Android的四大组件之Activity
    Intent的七大组件——Android开发之路5
  • 原文地址:https://www.cnblogs.com/mybilibili/p/6773952.html
Copyright © 2020-2023  润新知