什么是模块化?模块化怎么实现?

article/2025/10/22 10:05:22

什么是模块化?模块化怎么实现?

前言 : 增加印象,留下脚印 ,忘记还可以翻一翻 奥利给。

1,什么是模块化
公司里一个项目是有很多程序员一起开发的,例如 “多人运动” 这个项目
有程序员a ,程序员b ,程序员c
程序员a 写了 aaa.js 里面有几千行 几万行代码
程序员b 写了 bbb.js 里面有几千行 几万行代码
程序员c写了 ccc.js 里面有几千行 几万行代码

随着前端越来越np,代码量越来越多,那么维护代码就是一件很困难的事情
会出现 全局变量同名问题,a程序员 var flag = ture;b程序员 var flag = false;
b程序员 加班到夜里2点 找自己代码也找不出问题,他不可能看a的代码,那么又是几个晚上,
所以就有了模块化
模块化早期是用闭包体现出来的 使用模块作为出口
a程序员 导出

var moduleA = (function () {// 导出的对象var obj = {}// 小明var name = '小明'var age = 22function sum(num1, num2) {return num1 + num2}var flag = trueif (flag) {console.log(sum(10, 20));}obj.flag = flag;obj.sum = sum;return obj
})()

b程序员导入

;(function () {// 1.想使用flagif (moduleA.flag) {console.log('我是天才, 哈哈哈');}// 2.使用sum函数console.log(moduleA.sum(40, 50));
})()

随着前端的发展,我们定义了很多模块规范
常见的有CommonJS , CMD , AMD , ES6 Modules

2,CommonJS模块化实现(一点了解)
CommonJS导出:
在这里插入图片描述
CommonJS导入:
在这里插入图片描述
node.js 的 CommonJs
这样你是没有用的需要有人给你解析 ,那么怎么做呢 看一下我另一篇文章
webpack模块化打包工具入门
我们现在去看一下es6模块化实现吧

3,ES6 Modules模块化实现

导入

var name = '小明'  
var age = 18
var flag = truefunction sum(num1, num2) {return num1 + num2
}if (flag) {console.log(sum(20, 30));
}// 1.导出方式一:
export {flag, sum
}// 2.导出方式二:
export var num1 = 1000;
export var height = 1.88// 3.导出函数/类
export function mul(num1, num2) {return num1 * num2
}export class Person {run() {console.log('在奔跑');}
}
//默认导出  注意 只能写一个 你浏览器也只能一个默认吧 不用我说原因了吧
export default function (argument) {console.log(argument);
}

导出

// 1.导入的{}中定义的变量
import {flag, sum} from "./aaa.js";if (flag) {console.log('小明是天才, 哈哈哈');console.log(sum(20, 30));
}// 2.直接导入export定义的变量
import {num1, height} from "./aaa.js";console.log(num1);
console.log(height);// 3.导入 export的function/class
import {mul, Person} from "./aaa.js";console.log(mul(30, 50));const p = new Person();
p.run()// 4.导入 export default中的内容
import addr from "./aaa.js";addr('你好啊');// 5.统一全部导入
// import {flag, num, num1, height, Person, mul, sum} from "./aaa.js";import * as aaa from './aaa.js'console.log(aaa.flag);
console.log(aaa.height);

注意
这时候引用就不一样了,上一下 index.html吧
type = “module” 你的浏览器会帮你模块化的

<script src="aaa.js" type="module"></script>
<script src="bbb.js" type="module"></script>
<script src="mmm.js" type="module"></script>

这样变量不仅不会重名造成错误,还以复用。

有事联系QQ:1485731520


http://chatgpt.dhexx.cn/article/atf9oneV.shtml

相关文章

vue 模块化开发

1、npm install webpack -g 全局安装 webpack 2、npm install -g vue/cli-init 全局安装 vue 脚手架 3、初始化 vue 项目&#xff1b; vue init webpack appname&#xff1a;vue 脚手架使用 webpack 模板初始化一个 appname 项目 4、启动 vue 项目&#xff1b; 项目的 p…

Android模块化开发

模块化开发项目搭建 1.为什么要模块化开发 随着APP版本不断的迭代&#xff0c;新功能的不断增加&#xff0c;业务也会变的越来越复杂&#xff0c;APP业务模块的数量有可能还会继续增加&#xff0c;而且每个模块的代码也变的越来越多&#xff0c;这样发展下去单一工程下的APP架…

vue模块化开发

1.前端代码化雏形和CommonJS JavaScript原始功能 在网页开发的早期&#xff0c;js制作作为一种脚本语言&#xff0c;做一些简单的表单验证或者动画实现&#xff0c;代码量比较少&#xff0c;只要写在script标签里面就可以了 随着ajax异步请求的出现&#xff0c;慢慢形成了前…

模块化编程

1.一般编程方式&#xff1a;所有函数放在“.c”文件里。 &#xff08;缺点&#xff1a;若使用的模块功能比较多&#xff0c; 则一个文件内会有很多的代码&#xff0c; 不…

一次跟你说清楚,什么是组件化开发?什么是模块化开发?

网上有许多讲组件化开发、模块化开发的文章&#xff0c;但大家一般都是将这两个概念混为一谈的&#xff0c;并没有加以区分。而且实际上许多人对于组件、模块的区别也不甚明了&#xff0c;甚至于许多博客文章专门解说这几个概念都有些谬误。 想分清这两个概念我觉得结合一下软件…

前端模块化开发

前端模块化开发 什么是模块化&#xff1f; 模块化是指解决一个复杂问题时&#xff0c;自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说&#xff0c;模块是可组合、分解和更换的单元 编程领域中的模块化&#xff0c;就是遵守固定的规则&#xff0c;把一个大文件拆成…

模块化开发

模块化开发 1. 模块化开发最终的目的是将程序划分成 一个个小的结构 。 2. 这个结构中编写属于 自己的逻辑代码 &#xff0c;有 自己的作用域 &#xff0c;定义变量名词时不会影响到其他的结构。 3. 这个结构可以将自己希望暴露的 变量、函数、对象等导出 给其结构使用&#xf…

HttpClient CloseableHttpClient GetMethod PostMethod http

pom依赖 <!--HttpClient的依赖--><dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.1</version></dependency><!--CloseableHttpClient的依赖--><de…

JAVA小工具-05-HttpClient/PostMethod上传文件(解决中文文件名乱码问题)

言于头:本节讨论的是在项目中利用HttpClient/PostMethod相关api进行上传文件操作时&#xff0c;会出现上传中文文件名乱码问题。为解决这个问题&#xff0c;下面是总结的一个HTTP工具类以及测试用例。 public class HttpUtils {public static final String UTF_8 "UTF-8&…

解决PostMethod的中文乱码

解决HttpClient的PostMethod的中文乱码问题 问题场景&#xff1a; 解决代码&#xff1a; 请求时设定编码格式&#xff1a; post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8"); 完整代码&#xff1a; /*** 封装请求参数&#xff0…

php 取整,PHP取整的方法有哪些

本篇文章主要给大家介绍PHP取整的四种方法。 PHP实现取整的问题&#xff0c;不仅在我们学习PHP过程中会遇到&#xff0c;在我们PHP面试过程中也是常见的考点之一。 下面我们结合简单的示例给大家总结介绍PHP取整的四种方法。 第一种方法&#xff1a;直接取整&#xff0c;舍弃小…

php 如何取整,解析php取整的几种方式

解析php取整的几种方式 floor 舍去法取整 语法格式:float floor ( float value )返回不大于value 的下一个整数&#xff0c;将value 的小数部分舍去取整。floor() 返回的类型仍然是float&#xff0c;因为float 值的范围通常比integer 要大。 echo floor(4.3); // 4 echo floo…

VUE 数据分页

只要涉及到数据查询&#xff0c;通常我们都会进行分页查询。 假设你的表中有上百万条记录&#xff0c;不分页的话&#xff0c;我们不可能一次性将所有数据全部都载入到前端吧&#xff0c;那前后端都早就崩溃了。 结合 Spring Spring 和 Vue 都提供了开箱即用的分页功能。 S…

前端Vue分页及后端PageHelper分页综合运用

分页显示数据对项目开发中尤为重要&#xff0c;同时能提升用户体验&#xff0c;下面的前端css、js是我引用这篇文章的《使用Vue开发一个分页插件》&#xff0c;我在这个的基础上结合了后端稍微完善了一下&#xff0c;修改了disable的样式&#xff0c;在里面加了pointer-events:…

antd design vue分页组件

我们在使用分页组件的时候可以有两种方法&#xff1a; 第一种是直接用表格()的自定义:pagination属性最方便&#xff1b;如下图所示&#xff1a; 第二种是分页组件 这里我总结的是第二种方法的使用&#xff0c;由于是 Ant Design Vue 的组件&#xff0c;所以必须安装Ant Desig…

Vue分页页码栏设计

Vue分页页码栏设计 效果展示HTML数据需要函数需要运用 效果展示 HTML <div class"page_bar no-select"><ul class"clearfix"><li class"iconfont":class"{vh : currentPage 1}"click"subCurrentPage">&…

超级详细:一个漂亮的Vue分页器组件的实现

整篇分两个部分&#xff1a; 思路部分&#xff1a;讲解怎么实现分页器组件【大把时间看-建议】 后面部分&#xff1a;按照步骤&#xff0c;直接引入组件【没有时间看-建议】 思路&#xff1a;基于连续页码进行判断 需要添加分页器的组件&#xff08;Search组件&#xff09;中…

vue实现分页vue分页查询怎么实现

效果图&#xff1a; 代码&#xff1a; 复制过去即可运行 <!DOCTYPE html> <html lang"en" xmlns:th"http://www.w3.org/1999/xhtml"> <head><meta charset"UTF-8"><title>Title</title><!-- <scrip…

vue分页单位设置为中文格式

根据我搭建前端项目时遇到的问题做一个记录&#xff0c;我下载了一个vue-element-admin前端项目demo&#xff0c;但是默认情况下此demo分页展示时为如下图所示&#xff1a; 遇到此种情况想要调整为中文显示时&#xff0c;如下中文显示案例&#xff1a; 此时需要修改demo项目中…

vue分页器的封装

1.需要注册为全局组件 //main.js // 封装分页器为全局组件 Vue.component(Pagination.name,Pagination); 2.父组件的使用分页器&#xff0c;需要传递相应的参数和自定义事件 <Pagination :pageNo"searchParam.pageNo" :pageSize"searchParam.pageSize"…