Javascript模块引入方式

81 篇文章 7 订阅

Javascript中引入模块有两种方式:

  • script 方式
  • import 方式

下面就简单说下这两种引入方式。


无论那种引入,html都是必不可少的,所以首先我们要创建一个html文件,就叫index.html吧。然后再有两个js文件。

整体的目录的结构是这样的:

─Code
    └─js
     	├─module_a.js
     	├─module_b.js
    ├─index.html

script 引入

这种基本不用多说,直接在index.html中:

<script type="text/javascript" src="./js/module_a.js"></script>
<script type="text/javascript" src="./js/module_b.js"></script>

稀疏平常的模块化导入。

import 引入

主流浏览器发展到了现在,也基本支持了JavaScript高级语法的解析,其中就包括exportimport

要使用import的导入方式,需要在script标签上规定typemodule

<script type="module">
	import { module_a } from './js/module_a.js';
	import { module_b } from './js/module_b.js';
</script>

当然了,别忘了在module_a.js | module_b.js文件中使用export导出这两个变量。

module_a.js

export const module_a = 'module a';

module_b.js同理,这里就不写了。


再进一步,分割线上面说的import的引入,还可以更加精简,还可以做一下路径映射importmap
为了大家看的清楚,我写的全面一点

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>模块引入测试</title>
</head>
<body></body>
<!-- 尤其注意,importmap 块中接受的是一个`JSON`,注意下 引号 和 分号 别写错了。-->
<script type="importmap">
    {
        "imports": {
            "module/": "./js/"
        }
    }
</script>
<script type="module">
	import { module_a } from 'module/module_a.js';
	import { module_b } from 'module/module_b.js';
</script>
</html>

有了importmap的映射,当浏览器解析到module/这个关键词时,会自动去importmap中匹配,并把对应的路径拿到拼接成一个完成的路径。

所以如果想import { module_a } from 'module_a' 这样引入时,那我们只需要配置下importmap:

<script type="importmap">
    {
        "imports": {
            "module_a": "./js/module_a.js"
        }
    }
</script>

项目简单时看似很麻烦,但当项目模块比较多时,这种写法的优势不言而喻。


那,脑子不妨在活跃一点,一般写项目都会有一个入口文件,此时不妨在创建一个index.js

─Code
    └─js
     	├─module_a.js
     	├─module_b.js
    ├─index.js
    ├─index.html

有了这个入口文件,那我们就可以进一步改造下模块的引入:

首先在index.html中:

<script type="importmap">
    {
        "imports": {
            "module/": "./js/"
        }
    }
</script>
<script type="module" src="./index.js"></script>

index.js中:

	import { module_a } from 'module/module_a.js';
	import { module_b } from 'module/module_b.js';

别忘了module_a.js | module_b.js 中使用export导出。

这种组织方式岂不是更加优秀了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值