模块化

来源:互联网 发布:删除表数据的sql语句 编辑:程序博客网 时间:2024/04/30 18:04

什么是模块化?
将若干功能封装,以备实现复用
*为什么前端要模块化?
1. 将公用功能进行封装实现复用
2. 灵活解决依赖
3. 解决全局变量污染

Javascript语言本身不具备模块化能力,需要自己进行封装.前端模块化要按照commonjs的规范进行开发.

Nodejs按照commonjs的规范实现模块化(运行在服务端的javascript)

浏览器端javascript按照commonjs的规范实现模块化有很多不足,所以重新定义了AMD规范代替commonjs ,其代表是require.js

Seaj(淘宝定义的)按照cmd实现了一个前端浏览器端模块化

**如何定义一个规范??
模块是以文件形式存在(一个文件对应一个模块) ,通过define()来定义一个模块

define()来定义一个模块
(
可以传递两个参数:第一个参数是数组(可以省略),数组表示:用来声明依赖, ①最先加载此处的数组
第二个个参数是函数function
)
Require() 调用执行使用一个模块,require([]) ,:要求传入一个数组

执行require 不会b.js不会被覆盖

多个依赖可以都写在数组中,回调函数中的形参也必须是相对应的,书写顺序一定要保持一致,如果被依赖的模块没有返回值,就没有必要使用形参接收了

——入口文件——
入口文件通过dat-main属性实现
Data-main指定谁,谁就是入口文件,会被自动执行

———-加载路径(path)———–
requirejs加载模块式,路径是遵照一些规范的,分成以下几种情况
1. 当没有入口文件时,加载路径以引入requirejs的页面为准
2. 当存在入口文件时,加载路径以入口文件所在的目录
3. 通过配置可以自定义路径
通过config方法可以对requirejs进行配置,其中通过baseUrl来配置加载路径
require.config({
使用baseUrl配置加载路径
baseUrl: 基础路径;
使用paths配置模块真实路径 来起个’别名’
paths: { }
使用shim解决非模块化的形式
shim: { }
});

———配置不支持模块的插件———–
在显示开发中并不是所有的js文件都是按着模块化形式开发,但是我们不得不使用这些js库,requirejs提供了解决方案
1. 如何解决非模块形式的 使用shim

*传统的script标签与模块化的区别
模块化会按照::::按需加载(不需要的文件如:js不会加载)
Script: 引入script的标签还有先后顺序的要求

0 0
原创粉丝点击