前端技术-模块化操作(es6 写法) | 学习笔记

简介: 快速学习 前端技术-模块化操作(es6 写法)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)前端技术-模块化操作(es6写法)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/667/detail/11323


前端技术-模块化操作(es6写法)


内容介绍:

一、es6  模块化代码写法

二、es6 的简化写法


一、es6模块化代码写法

注意:如果使用 es6 写法实现模块化操作,在 node js 环境中不能直接运行模块化操作。需要使用 Babel 把 es6代码转换 es5 代码,才可以在 node.js 中运行。

1、编写代码

01.js:

新建 modulees6 文件夹,分别创建01.js 和 02.js 文件,在02.js 文件中去调用01.js 方法。

//定义方法,设置哪些方法可以被其他 js 调用

export function getList() {

console.log(‘getList…………’)

}

表示定义方法为 getList,不同于 es5 先定义后设置,export 可以让其他 js 直接被调用。

另一方法:

export function save() {

console.log(‘save…………’)

}

02.js

//调用 01.js 的方法,引入 01.js 文件,进行调用

import {gerList,save} from ‘./01.js’

//调用方法

getList()

save()

注明:{}内为所要调用的方法名称,from 后为引入路径

2、测试

由于是 02.js 调用 01.js ,因此运行的是 02.js。

(1)直接运行

在终端打开,用 node js 执行:

e:\work\vs1010\babeldemo\modulees61>node 02.js

返回结果报错:

e:\work\vs1010\babeldemo\modulees61>node 02.js e:work\vs1010\babeldemo modulees61102js:2

import {getList,save} from'./01.js'^

SyntaxError:Unexpected token {

at new Script (vm.js:79:7)

at createScript (vm.js:251:10)

at Object.runInThiscontext(vm.js:303:10)

at Module. _compile(internal/modules/cjs/loader.s:657:28)

at Object.Module._extensions..js(internal/modules/cjs/loader.js:700:10)

at Module.load(internal/modules/cjs/loader.js:599:32)

at tryModuleload(internal/modules/cis/loader.js:538:12)

at Function.Module._load(internal/modules/cjs/loader.js:530:3)

at Function.Module.runMain(internal/modules/cjs/loader.js:742:12)

at startup(internal/bootstrap/node.js:282:19)

e:\work\vs1010\babeldemo\modulees61>

import {getList,save} from'./01.js'^

说明系统无法识别。正确运行需通过转换。

(2)转换运行

新建 ees611 文件夹,在文件夹中通过 babel 转换为 es5 代码。

转换方法:

#转码结果写入一个文件

mkdir dist1

#  --out-file 或 -o 参数指定输出文件

babel src/example.js –out dist1/compiled.js

#或者

Babel src/example.js -odist1/compiled.js

#整个目录转码

Mkdir dist2

#  --out-dir 或  -d 参数指定输出目录

babel src  --out-dir dist2

#或者

Babel src  -d dist2

当前是两个文件,用最后一种方法最为简便:

e:\work\vs1010\babeldemo>babel modulees61 -d es611

modulees61\01.js ->es611\01.js

modulees61\02.js ->es611\02.js

e:\work\vs1010\babeldemo>

转换结果如下。

01.js 为:

Object.defineProperty(exports,”_esModule”,{

Value:true

});

exports.getList=getList;

exports.save=save;

02.js为:

Var_ =require(‘./01.js’);

成功转换为 es5

在终端执行:

e:\work\vs1010\babeldemo\es611>node 02.js

getList…………

save…………

e:\work\vs1010\babeldemo\es611>


二、es6 的简化写法

1、编写代码

新建 modulees62 文件夹,同样建立 01.js 和02.js 文件。

01.js:

//定义方法,设置哪些方法可以被其他 js 调用

export default{

getList() {

console.log(‘getList…..’)

},

update(){

console.log(‘update…..’)

}

}

02.js:

//调用 01.js 的方法,引入 01.js 文件,进行调用

import m from ‘./01.js’

//调用方法

m.getList()

m.update()

2、测试

新建 es622文件夹,通过 babel 进行转换:

e:\work\vs1010\babeldemo>babel modulees62 -des622

modulees62\01.js ->es622\01.js

modulees62\02.js ->es622\02.js

e:\work\vs1010\babeldemo>[]

用终端打开进行调用:

e:\work\vs1010\babeldemo\es622>node 02.js

getList…..

update…..

e:\work\vs1010\babeldemo\es622>[]

模块化指的是 js 之间的调用。通过一个 js 去调用另一个 js 中的方法

具体操作:

如02调用01文件。先在01中定义方法,设置哪些方法可以被调用,在02中完成引入文件后再进行调用。上述的 es6 简化方法更为常用。

相关文章
|
6月前
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
414 70
|
11月前
|
前端开发 JavaScript 测试技术
前端测试技术中,如何提高集成测试的效率?
前端测试技术中,如何提高集成测试的效率?
|
11月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
223 6
|
11月前
|
前端开发 JavaScript 搜索推荐
前端懒加载:提升页面性能的关键技术
前端懒加载是一种优化网页加载速度的技术,通过延迟加载非首屏内容,减少初始加载时间,提高用户访问体验和页面性能。
|
11月前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
385 5
|
12月前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
926 14
|
12月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
259 0
|
12月前
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。
386 6
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
12月前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
505 1