后盾人JS -- 模块化开发

server/2025/2/12 14:17:35/

 开发模块管理引擎

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>let module = (function(){const moduleList = {}function define(name,modules,action){modules.map((m,i)=>{modules[i] = moduleList[m]})moduleList[name] = action.apply(null,modules)}return {define}})()module.define("hd",[],function(){return{first(arr){return arr[0]},max(arr,key){return arr.sort((a,b)=>b[key]-a[key])[0]}}})module.define("lesson",["hd"],function(hd){let data = [{name:"js",price:199},{name:"mysql",price:78}]hd.max(data,"price")})module.define("a",[],function(a){return{site:"后盾人",url:"houdunren.com"}})module.define("b",["a"],function(a){a.site = "hdcms"})module.define("c",["a"],function(a){console.log(a)})</script>
</body>
</html>

模块的基本使用

模块基本使用.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script type="module">import { title, url, show } from "./hd.js"   //这个路径必须写console.log(url)</script>
</body></html>

hd.js

javascript">let title = "后盾人"
let url = "houdunren.com"
function show() {console.log("我了个豆")
}
export{title,url,show}   //把url开放

模块延迟解析与严格模式

使用模块的时候默认就是严格模式

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><button>后盾人</button><script type="module">import {}from"./hd.js"console.log(this)</script><script>console.log(this)</script>
</body>
</html>

作用域在模块中的体现

只有导出接口才可以正常的使用私有

解析只会发生一次,可以减少解析时间,避免解析的错误

模块的具名导出与导入

模块的导入要有名字,没有名字会报错

如果有很多的接口需要导入的话,可以这样写:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script type="module">import * as api from "./hd.js"console.log(api.url)console.log(api.show())</script>
</body>
</html>

如果有的导入了但是没有使用也会被裁剪掉

别名使用

javascript">import {site as s}from "./hd.js"

这就是别名的使用(主要是简洁)

default默认导出

这是default默认导出,接收的时候使用默认导出的数据

javascript">export default function show() {console.log("我了个豆")
}

混合导入导出

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script type="module">import * as api from "./hd.js"console.log(api.default.show())console.log(api.url)</script>
</body>
</html>
javascript">let title = "后盾人"
let url = "houdunren.com"
export default
{show
} 
function show() {console.log("我了个豆")
}
export{title,url}   //把url开放 

最好使用具名导出,默认导出的时候最好按照原来的模块起名字

动态模块加载

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>import("./hd.js").then(module =>{console.log(module)})</script>
</body>
</html>

WEBPACK

WEBPACK是打包工具

把一堆js文件打包成文件夹15:

执行完这个init就产生了一个.json(配置文件)

这是安装:

点开配置文件添加一个命令:

"dev" : "webpack --mode development --watch"

 index.js是入口文件

因为添加过命令了,所以可以直接

进行编译

编译好之后就可以引入了


http://www.ppmy.cn/server/167080.html

相关文章

对接苹果ios退款接口-保姆级

前言&#xff1a; 1.吐槽&#xff1a;苹果退款很恶心&#xff0c;是它认为符合退款就直接给退了&#xff0c;没有国内店家审核阶段。会导致商户额外损失&#xff0c;所以有必要对用户发起的退款订单做及时响应。 2.尴尬&#xff1a;初次对接苹果相关业务&#xff0c;因为苹果不…

Deepseek本地部署:1.5B到671B,参数规模的秘密与设计逻辑

在人工智能领域&#xff0c;模型的参数规模是决定其能力的重要因素之一。Deepseek提供了从1.5B到671B不等的多种参数规模模型&#xff0c;供用户根据需求进行本地部署。那么&#xff0c;这些参数规模的区别是什么&#xff1f;为什么Deepseek选择这些特定的参数规模&#xff0c;…

后台管理系统网页开发

CSS样式代码 /* 后台管理系统样式文件 */ #container{ width:100%; height:100%; /* background-color:antiquewhite;*/ display:flex;} /* 左侧导航区域:宽度300px*/ .left{ width:300px; height: 100%; background-color:#203453; display:flex; flex-direction:column; jus…

性能优化中的系统架构优化

系统架构优化是性能优化的一个重要方面&#xff0c;它涉及到对整个IT系统或交易链上各个环节的分析与改进。通过系统架构优化&#xff0c;可以提高系统的响应速度、吞吐量&#xff0c;并降低各层之间的耦合度&#xff0c;从而更好地应对市场的变化和需求。业务增长导致的性能问…

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 0基础…

Spring Boot 和Tomcat的关系

Spring Boot 和 Tomcat 之间的关系可以从多个角度来详细阐述&#xff0c;包括它们的作用、工作原理以及如何协同工作。以下是详细的解析&#xff1a; 1. Spring Boot 的简介 Spring Boot 是一个基于 Spring 框架的开发工具&#xff0c;它的目标是简化 Spring 应用的开发。Spr…

Linux:ELF加载_动态库

hello&#xff0c;各位小伙伴&#xff0c;本篇文章跟大家一起学习《Linux&#xff1a;ELF加载_动态库_进程通信》&#xff0c;感谢大家对我上一篇的支持&#xff0c;如有什么问题&#xff0c;还请多多指教 &#xff01; 如果本篇文章对你有帮助&#xff0c;还请各位点点赞&…

点云配准网络

【论文笔记】点云配准网络 PCRNet: Point Cloud Registration Network using PointNet Encoding 2019_pcr-net-CSDN博客 【点云配准】【深度学习】Windows11下PCRNet代码Pytorch实现与源码讲解-CSDN博客 【点云配准】【深度学习】Windows11下GCNet代码Pytorch实现与源码讲解_…