前端的模块化
1.前端的模块化
js中提供了三种规范
1.commonjs规范,代表就是nodejs 适合后台开发 因为是同步的 服务器的运行比较快等待时间不长,commonjs不适合用于前端,前端的客户端是浏览器,浏览器最求异步加载,浏览器不能等待太长时间。
2. 前端模块的规范是Amd规范 代表就是requirejs,他是异步的,很多前端框架都是用的amd规范,比如jquery angular 等
3.第三个模块化规范是es6
2.模块化的操作
1.commonjs的操作
所有的模块化都是两个方向,暴露模块接口和引入模块。
module.exports={} 暴露的是一个叫exports的对象
require() 引入一个模块
这是后台的规范,在nodejs环境可以直接运行,但是在客户端不能直接运行,需要对文件打包解析。webpack gulp。
拓展
var a:
var a 就是声明一个变量a,就是浏览器往window上添加一个属性a。
前端模块
自定义前端模块
案例分析
定义一个a模块,没有任何依赖,定义一个b模块,这个模块依赖a模块,定义一个主文件index.js,依赖b模块。
html文件
注意事项
依赖关系千万不能出错
这种模块的缺点
会发送多次请求,依赖关系不能放错顺序。
3.前端模块化规范amd
amd是前端模块化的一种规范,全称async module definition 异步模块加载机制,所以需要按照这个去定义模块和使用模块
1.require提供了一个全局的方法 叫define() 用来定义模块
定义模块分两种 1不依赖其他模块 2.依赖其他模块
不依赖其他模块
定义一个有依赖的模块
如何使用这些模块
在主文件中分两部分,一部分是配置模块 一部分是使用模块
原文地址:https://www.cnblogs.com/guhuai/p/11134865.html
- [程序设计语言]-01:引言
- ASP.NET Ajax 库
- ASP.NET进程优化
- 多说 提速:js内页页脚加载、静态文件CDN
- 微信小程序的王者时代
- [程序设计语言]-[核心概念]-02:名字、作用域和约束(Bindings)
- NUMA架构
- 如何处理 Python 入门难以进步的现象?
- 编写前置和后置条件的连贯接口库:CuttingEdge.Conditions
- [程序设计语言]-[核心概念]-03:控制流
- 简单代码实现“网站维护中”“coming soon” 效果
- 使用Topshelf创建Windows 服务
- 自定义AuthorizeAttribute
- 系统进程管理工具Process Explorer
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Go实现字符串全排列字典序排列详解
- Go实现字符串全排列详解递归
- springboot整合RSA进行sign签名校验
- Go寻找最长回文字符串——中心扩展法
- Spring高级技术应用——百战商城实现(上)
- 基于Springboot+jpa+thymeleaf+rabbit+SpringBoot mail 的简单项目
- 【go】剑指offer: 删除链表结点O(1)时间复杂度
- Go快速查找有序二维数组的数字
- Go寻找数组中最小的k个数——全部排序和部分排序
- Spring高级技术应用——百战商城实现(下)
- Go 字符串反转问题解决思路
- 剑指offer:go实现从尾到头打印链表
- 【go】剑指offer:3种方法寻找二进制1的个数
- 高并发技术
- Working with Errors in Go 1.13