前端学习笔记 1:js 导入导出

这篇具有很好参考价值的文章主要介绍了前端学习笔记 1:js 导入导出。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前端学习笔记 1:js 导入导出

1.传统引用

一般性的,用以下方式引入JS 中定义的函数或对象到 Html 中使用:

function showMessage(){
    console.log("hello");
}

function showChineseMessage(){
    console.log("你好");
}
<html>

<body>
    <h1> hello </h1>
    <button id="btn">按我有惊喜</button>
    <script src="./my_methods.js"></script>
    <script>
        document.getElementById("btn").onclick = function () {
            showMessage();
        }
    </script>
</body>

</html>

这样做的缺点在于,无法按照需要导入所需的 JS 函数,只能用<script>标签将相应的 JS 文件中定义的所有内容全部导入,这样做会对 HTML 中的脚本命名空间造成污染。

2.导入导出

可以通过 JS 的导入(import)导出(export)功能进行精准导入和导出。

2.1.单个函数导入导出

首先,在 JS 文件中需要导出的函数(或对象)前加上 export 关键字:

export function showMessage(){
    console.log("hello");
}

export function showChineseMessage(){
    console.log("你好");
}

然后,在 HTML 文件中创建一个类型为module<script> 标签,并在其中使用import 关键字导入需要的 JS 函数:

<html>

<body>
    <h1> hello </h1>
    <button id="btn">按我有惊喜</button>
    <script type="module">
        import {showMessage} from "./my_methods.js"
        document.getElementById("btn").onclick = function () {
            showMessage();
        }
    </script>
</body>

</html>

import后用{}包裹的是要导入的 JS 函数,from 后跟定义函数的目标 JS 文件。

如果通过本地页面方式测试以上代码,可能会报如下错误:Access to script at 'file:///D:/workspace/learn-page/ch1/import2/my_methods.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome-untrusted, https, edge.

这是因为浏览器端的跨域安全机制生效的缘故,可以通过将页面通过 Web 服务器运行的方式解决。更简单和推荐的方式是使用 VSCode 的简易 Web 服务器插件Live Server 运行页面,具体方式可以参考这里。

2.2.批量导入导出

可以在{}内一次导入多个函数:

<script type="module">
    import {showMessage,showChineseMessage} from "./my_methods.js"
    document.getElementById("btn").onclick = function () {
        showMessage();
        showChineseMessage();
    }
</script>

如果觉得在每个 JS 函数前加 export 会很麻烦,可以在结尾使用export一次性批量声明:

function showMessage(){
    console.log("hello");
}

function showChineseMessage(){
    console.log("你好");
}

export {showMessage,showChineseMessage}

2.3.使用别名

就像常见的编程语言那样,使用import导入的时候可以为导入的函数(对象)设置别名:

<script type="module">
    import {showMessage,showChineseMessage as scm} from "./my_methods.js"
    document.getElementById("btn").onclick = function () {
        showMessage();
        scm();
    }
</script>

这样可以进一步规避命名空间冲突的问题。

不仅可以在导入时使用别名,也可以在导出时使用别名:

function showMessage(){
    console.log("hello");
}

function showChineseMessage(){
    console.log("你好");
}

export {showMessage,showChineseMessage as scm}

此时在导入时需要使用导出时定义的别名进行导入:

<script type="module">
    import {showMessage, scm} from "./my_methods.js"
    document.getElementById("btn").onclick = function () {
        showMessage();
        scm();
    }
</script>

2.4.整体导入

如果觉得按照单个函数导入导出比较麻烦,可以将整个 JS 文件作为整体进行导入。

需要先在导出时添加default关键字:

function showMessage(){
    console.log("hello");
}

function showChineseMessage(){
    console.log("你好");
}

export default {showMessage,showChineseMessage}

在导入时使用的import关键字后不需要使用{}

<script type="module">
    import myMethods from "./my_methods.js"
    document.getElementById("btn").onclick = function () {
        myMethods.showMessage();
        myMethods.showChineseMessage();
    }
</script>

这样就可以像调用 JS 对象的方法那样使用导入的 JS 文件中的函数。

谢谢阅读,本文的完整示例代码可以参考这里。文章来源地址https://www.toymoban.com/news/detail-760927.html

3.参考资料

  • 黑马程序员SpringBoot3+Vue3全套视频教程
  • 引用import的JS报错:Access to script at ‘file:’ from origin ‘null’ has been blocked by CORS policy(3种解决手段)-CSDN博客

到了这里,关于前端学习笔记 1:js 导入导出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 纯前端实现 导入 与 导出 Excel

    最近经常在做 不规则 Excel 的导入,或者一些普通 Excel 的导出,当前以上说的都是纯前端来实现;下面我们来聊聊经常用到的Excel导出与导入的实现方案,本文实现技术栈以 Vue2 + JS 为例 导入分类: 调用 API 完全由后端来解析数据,清洗数据,前端只负责调用 API ; 前端解析

    2024年02月09日
    浏览(44)
  • 【前端】批量导入和导出Excel数据

    excel导入功能需要使用npm包 xlsx ,所以需要安装 xlsx 插件,读取和写入都依赖她 vue-element-admin模板提供了一个导入excel数据的文件,我们只需用即可 代码地址: https://github.com/PanJiaChen/vue-element-admin/blob/master/src/components/UploadExcel/index.vue 将vue-element-admin提供的导入功能新建一个组件

    2024年02月09日
    浏览(49)
  • Web 前端进阶—— JS 学习笔记

    目录 一、JavaScript提升篇 1、什么是跨域? 2、什么是原型? 3、什么是闭包? 4、如何防抖? 5、TCP的三次握手和四次挥手 6、new 操作符原理 7、事件委托做了什么 8、事件代理是什么 9、Eventloop 10、 如何实现跨域 11、写出原生 Ajax 12、暂时性死区是什么 13 、promise 解决回调陷阱的

    2024年04月26日
    浏览(36)
  • xlsx库实现纯前端导入导出Excel

    最近做了前端导入、导出 Excel 的需求,用到了 js-xlsx 这个库,该库文档提供的用例很少,并不是很友好。本文总结一下我是如何实现需求的。 提供一个 Excel 文件,将里面的内容转成 JSON 导入数据 提供一个 JSON 文件,生成 Excel 文件并导出 导入与导出既可以前端做,也可以后

    2023年04月08日
    浏览(52)
  • Vue前端实现excel的导入、导出、打印功能

    导入导出依赖: npm install xlsx@0.16.9 npm install xlsx-style@0.8.13 --save 安装xlsx-style,运行报错 This relative module was not found: ./cptable in ./node_modules/xlsx-style@0.8.13@xlsx-style/dist/cpexcel.js 解决报错 在node_modulesxlsx-styledistcpexcel.js 807行 的 var cpt = require(\\\'./cpt\\\' + \\\'able\\\'); 改为: var cpt = cptable; 打印

    2023年04月08日
    浏览(47)
  • JS实现Excel导入以及table导出为Excel

    在开发项目的过程中遇到了一个需求,将excel文件导入并且解析渲染到页面上。用户可以对表格内的部分内容做修改后再上传到服务端。 导入Excel 1.使用html支持上传标签从本地获取文件,例如type为file的input,el-upload等 2.实例化FileReader,并且通过readAsBinaryString将文件读取为二

    2024年02月09日
    浏览(45)
  • 【vue导入导出Excel】vue简单实现导出和导入复杂表头excel表格功能【纯前端版本和配合后端版本】

    前言 这是一个常用的功能,就是导入和导出excel表格 但是时常会遇到一些复杂表头的表格导出和导入 比如我这个案例里面的三层表头的表格。 网上看了下发现了一个非常简单导出和导入方法 当然这个是纯前端的版本,会出现分页不好下载的情况。所以实际工作中,导出还是

    2024年02月11日
    浏览(64)
  • Vue3 exceljs库实现前端导入导出Excel

    最近在开发项目时需要批量导入和导出Excel数据,在实现这个需求时,我们既可以在前端完成数据解析和文件生成工作,也可以通过前端发起导入以及导出请求后,后端实现解析文件流解析文件内容以及生成文件并提供下载链接的功能。 相较于后端处理Excel数据而言,使用前

    2024年03月14日
    浏览(46)
  • react-前端excel 文件/PDF文件 导入 --导出,照片上传

    需要了解,new FormData() --上传时,将内容转为文件流                   FormData提供一种表示表单数据的键值对的构造方式,实现表单数据的序列化,从而减少表单元素的拼接,提高工作效率                  new FileReader()--base64压缩,目前不了解 一、excel文件导出      三

    2023年04月08日
    浏览(46)
  • vue+xlsx实现前端模版下载、导入和导出excel文件

    产品需求:后端不想写下载,导入和导出的接口,让我们前端自己实现。 这里我们就可以用xlsx插件来实现,我们不多说了,先放一下实现的图片,下面我们分别把模版下载、导入和导出的代码放上来,想用的话,直接复制粘贴即可! 模版下载图片 导出图片: 好了,下面我

    2024年02月13日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包