圆圆网络 手游攻略 手游攻略 require;required是什么意思

require;required是什么意思

时间:2025-01-13 09:35:45 来源:互联网 浏览:75

JavaScript 中 require 和 import 语句的区别

随着现代 Web 开发,我们要么使用 require 要么使用 import 引用 JavaScript 依赖项。有时,我们将两者结合使用。

但是,你知道为什么这两者都存在吗? 使用一种或另一种时的最佳实践是什么?

在本文中,我将讨论使用 require 和 import 并回答其中一些常见问题。

require;required是什么意思

在讨论 require 和 import 之前,有必要对 JavaScript 模块有一定的了解。 那么,让我们看看有哪些不同类型的 JavaScript 模块可用。

引入了 AMD 模块以使模块更加前端友好。 它们不需要任何打包器,并且所有依赖项都是动态解析的。

AMD使用 require 函数用于加载外部模块,并且能够充当 CommonJS 模块的包装器。

但是,随着 ES 模块的引入,AMD 的使用量急剧减少。

CommonJS 是 NodeJS 用来在模块中封装 JavaScript 的标准。 module.exports用于导出 CommonJS 模块,以及 import 函数用于将模块包含到单独的文件中。

尽管 CommonJS 模块在 NodeJS 中被广泛使用,但在前端开发中并没有使用它们。 这背后的主要原因是require函数的同步行为。

但是,NodeJS 从 v13 开始才开始支持 ES 模块。 在那之前,大多数 NodeJS 模块,包括 NPM 库,都是使用 CommonJS 模块开发的。

因此,CommonJS 模块仍然在开发人员中广泛使用。

而且,CommonJS 模块与 ES 模块同样重要,我将在本文接下来的部分中讨论更多。

UMD 是 AMD 和 CommonJS 的组合。 它使用了 AMD 的 CommonJS 语法和异步加载技术,使其适用于服务器端和客户端。

UMD 在 Webpack 等打包器中用作回退模块,下面显示了一个简单的 UMD 模块示例:

ES Modules (ECMAScript Modules) 是 JavaScript 中使用的官方标准。 ES 模块使用 import和 export 处理模块的语句。 它解决了 CommonJS 的最大限制之一,即同步加载。

在引入 ES Modules 之后,开发者之间有很多争论,考虑到与 CommonJS 的兼容性。 但是,开发人员已经适应使用这两种方法,我们将在接下来的部分中讨论更多详细信息。

已经了解了 JavaScript 模块的背景,那么让我们继续讨论 require 和 import.

require通常与 NodeJS 一起使用来读取和执行 CommonJS 模块。

这些模块可以是内置模块,如 http或自定义编写的模块。 使用 require,可以将它们包含在 JavaScript 文件中并使用它们的函数和变量。

但是,如果要使用 require 要获取本地模块,首先需要使用 module.exports 导出它们.

例如,假设您有一个名为 blogDetails.js,并且您需要使用该文件中的函数 index.js文件。

还可以使用一次导出多个模块 modules.export 如下:

注意: 如果最后不是使用 modules.export,可以附加 exports 。 例如: exports.getBlogContent = () => {};

我想现在你明白什么时候应该使用 require以及它是如何工作的。 接下来让我们看看如何 import 。 然后我们将能够以更深层次的理解来比较和对比它们。

import 是一个 ES 模块,并带有 export,它们被称为 ES6 import 和 export.

我们不能用 import 或导出到 ES 模块之外。

试图 import ES 模块之外是一个常见的开发人员错误。

如果我举同样的例子,我需要做的唯一改变就是修改 modules.export到 export default.

然后我们可以使用 import 将此文件包含在我们的 index.js文件。

注意: 类似于 require,还可以通过将导出附加到每个函数定义来单独导出每个函数。

例如: export const = getBlogContent = () => {};

所以,我想你现在明白应该如何以及何时使用 require和 import。但是,这还不是全部; 它们的功能和用法存在一些显着差异。 是时候进行比较了。

require 和 import 都用于包含模块。 但是它们有几个应该注意的重要功能。

import 语句只能在文件的开头定义。 定义一个 import 其他地方的语句会给你一个错误或自动转移到文件的开头。

声明 require 时,当加载的模块名称未预定义时,允许有条件地或动态地加载模块。

例如,你可以调用 require 在函数或 if 条件中,如下所示:

require语句具有这种灵活性,因为它们被视为函数。 它们在运行时被调用,在此之前没有办法知道任何事情。 但, import 语句是静态的,我们不能有条件地或动态地使用它们。

注意: 由于 import 语句是静态的,所以可以在运行应用程序之前检测到任何错误

在小型应用程序中,同步或异步可能不会发挥主要作用。 但是,如果我们考虑大型应用程序,则会使用数百个模块。 所以,如果你使用 require, 模块将被一 一加载和处理。

而 import 语句通过异步工作解决了这个问题,这比 require 在大规模应用中更能发挥作用。

正如我们所讨论的,ES 模块系统是作为维护客户端 JavaScript 模块的标准引入的。 TypeScript 也采用了它,并添加了用于定义 Type 的内容。 因此,我不认为 require可以再次取代 ES,因为它已成为开发人员中广泛使用的标准。

但是由于有大量的 NodeJS 模块和库是用 CommonJS 编写的,我们不能保留 require完全放在一边。 所以我们必须相应地使用它们。

如果你使用的是 TypeScript,则可以通过配置 tsconfig.json文件。 例如,假设我们需要输出一个使用 CommonJS 的代码版本。

需要做的就是创建一个新的 tsconfig 通过扩展原始文件用于 CommonJS 输出 tsconfig文件并修改 module下参数 CompilerOptions.

注意: 还可以使用 Webpack 等构建工具将 ES 模块转换为 CommonJS 模块。

以下表格为比较两者

不够理解import和require导入的区别被diss惨了

作者:天天鸭

前言

在真实工作中,估计 importrequire 大家经常见到,如果做前端业务代码,那么 import 更是随处可见了。但我们都是直接去使用,但是这两种方式的区别是什么呢?应用场景有什么区别呢?

大部分能说出来 importES6 规范,而 requireCommonJS 规范,然后面试官深入问你两者编译规则有啥不一样?然后就不知道了

本文一次性对 importrequire模块基本概念编译规则基本用法差异生态支持性能对比5 个方面一次理清总结好,下次遇到这种问题直接举一反三。

(顺便吆喝一句,技术大厂,前后端测试捞人,感兴趣来看 这里 )

一、模块基本概念 require : 是 CommonJS 模块规范,主要应用于 Node.js 环境。 import :是 ES6 模块规范,主要应用于现代浏览器和现代 js 开发 (适用于例如各种前端框架)。

二、编译规则 requirerequire 执行时会把导入的模块进行缓存,下次再调用会返回同一个实例。 在 CommonJS 模块规范中, require 默认 是同步的。当我们在某个模块中使用 require 调用时,会等待调用完成才接着往下执行,如下例子所示。

模块 A 代码

模块 B 代码

打印顺序,会按顺序同步执行

注意require 并非绝对是同步执行,例如在 Webpack 中能使用 require.ensure 来进行异步加载模块。 import

ES6 模块规范中, import 默认是静态编译的,也就是在编译过程就已经确认了导入的模块是啥,因此 默认 是同步的。 import 有引用提升置顶效果,也就是放在何处都会默认在最前面。

但是...., 通过 import() 动态引入是异步的哦,并且是在执行中加载的。 import() 在真实业务中是很常见的,例如路由组件的懒加载 component: () => import('@/components/dutest.vue') 和动态组件 const MyTest = await import('@/components/MyTest.vue'); 等等, import() 执行返回的是一个 Promise ,所以经常会配合 async/await 一起用。

三、基本用法差异 require : 一般不直接用于前端框架,是用于 Node.js 环境和一些前端构建工具(例如: Webpack )中

1. 导入模块 (第三方库)Node.js 中经常要导入各种模块,用 require 可以导入模块是最常见的。例如导入一个 os 模块

2. 导入本地写好的模块 假设我本地项目有一个名为 utils.js 的本地文件,文件里面导出一个 add 函数

在其它文件中导入并使用上面的模块

import 一般都是应用于现在浏览器和各种主流前端框架(例如: Vue\react

1. 静态引入(项目中最常用) 这种情况一般适用于确定的模块关系,是在编译时解析

2. 动态引入 其实就是使用 import() 函数去返回一个 Promise ,在 Promise 回调函数里面处理加载相关,例如路由的懒加载。

或者动态引入一些文件(或者本地的 JSON 文件)

四、生态支持 require :

Node.js14 之前是默认模块系统。目前的浏览器基本是不原生支持 CommonJS ,都是需要通过构建工具(如 Webpack )转换才行。并且虽然目前市面上 CommonJS 依然广泛使用,但基本都是比较老的库,感觉被逐渐过渡了。

import

importES6 规范,并且 Node.jsNode.js12 开始支持 ES6Node.js14 之后是默认选项。目前现代浏览器和主流的框架( Vue、React )都支持原生 ES6 ,大多数现代库也是,因此 import 是未来主流。

五、性能对比

ES6 支持 Tree Shaking 摇树优化,因此可以更好地去除一些没用的代码,能很好减小打包体积。 所以 import 有更好的性能。

import() 能动态导入模块性能更好,而 require 不支持动态导入。

小结

对比下来发现, import 不但有更好性能,而且还是 Node.js14 之后的默认,会是主流趋势。

至此我感觉足够能举一反三了,如有哪里写的不对或者有更好建议欢迎大佬指点一二啊。

「九年级英语」初中单词讲解:remind,require,matter和admire

牛津译林版九年级上册亮点给力提优课时作业本P95

6.[2021·常州市金坛区期中]—What do you think poor children need most?

—I think education _________ most. Knowledge changes one’s fate.

A.reminds B.requires C.matters D.admires

答案:C

句意:—你认为贫穷的孩子最需要什么?

—我认为教育至关重要。知识改变一个人的命运

解析:这道题考的是动词辨析。动词辨析题我们首先要看一下动词的用法。

1.remind/rɪˈmaɪnd/vt.提醒;使想起

[单词记忆]mind这个单词作为名词讲是“头脑”的意思,前面的re是前缀,表示back,“回来”的意思,所以remind这个单词的意思就是使什么东西回到脑子里,所以就是“提醒;使想起”的意思。

[教材例句]Yellow is the colour of the sun,so it can remind you of a warm sunny day.(牛津译林版九年级上册P23)

黄色是太阳的颜色,因此它能使你想起温暖、阳光明媚的一天。

[单词用法](1)remind sb of sb/sth使某人想起某人/某物;

You remind me of your father when you say that. 你说这样的话,使我想起了你的父亲。

(2)remind sb to do sth提醒某人去做某事。

Can you remind me to buy a bottle of wine? 你能提醒我买一瓶葡萄酒吗?

(3)remind sb that…提醒某人…

The photos remind us that we all appreciate beauty. 这些照片提醒我们,我们都欣赏美丽。

[答案]remind的三个用法中后面都是有sb.的,remind这个单词是个及物动词,而题目中空格后面没有名词。也就是说题目中要填个不及物动词,所以这道题的答案不是remind。

2.require/rɪˈkwaɪə(r)/vt.需求,要求

[单词记忆]我们小学的时候就学过question这个单词,它前面的quest就是个词根,表示“问,寻”的意思。我们这里呢,把字母e换成了字母i,元音字母之间是可以进行相互替换的,字母st换成了字母r,字母r、s、t都是邻居,所以它们之间是可以进行相互替换的。这样quest就变成quir,我们在前面加上前缀re,表示again,“再一次”的意思,后面加个没有含义的不发音的字母e,require这个单词的含义就是一再问询,你想你买东西的时候,盯着一个东西问个没完,为什么?因为你“想要”这个东西。

[教材例句]You really require a lot of talent and hard work to succeed.(人教九年级P27)

想要成功,你真的需要很高的天赋和努力。

这个句子体现了require这个单词最基础的用法,及物动词,需要什么东西,直接写在require的后面。

[单词用法]

(1)require sth.:需要某物

These pets require a lot of care and attention.

这些宠物需要悉心照顾。

《牛津词典》

(2)require sb to do sth要求某人做某事;

The job will require you to use all your skills to the maximum.

这项工作将要求你最大限度地发挥你的技能。

这个用法经常用被动语态:sb. be required to do sth.某人被要求做某事

He was required to work at Friday night.

他被要求在星期五晚上工作。

[答案]require这个单词也是个及物动词,所以这道题的答案不是require。

3.admire/ədˈmaɪə(r)/vt.钦佩,羡慕

[单词]这个单词用谐音最好记,“我的妈呀,你好厉害呀”,所以admire就是“钦佩,羡慕”的意思。

[教材例句]I admire these children for their courage.(牛津译林版九年级上册P58)

我钦佩这些孩子的勇气。

这个句子体现了admire这个单词的用法,及物动词,钦佩,羡慕什么东西,直接写在admire的后面。

[答案]admire这个单词也是个及物动词,所以这道题的答案不是admire。

4.matter/ˈmætə(r)/v.要紧,有关系

[例句]It doesn't matter.这不要紧;没关系

这个句子大家一定背的熟熟的,但是从来没有研究过这个句子。

这不要紧是It doesn’t matter.

那么这要紧是什么?It matters.

[例句]美剧:邪恶 第一季第3集

Teacher:Two spaces after every period.每个句号后面都有两个空格。

How many times do I have to tell them, one!我得告诉他们多少遍,空一格!

Student:Does it matter? 这重要吗?

Teacher:Everything matters.Perfection matters!

每个细节都很重要。完美很重要!

[注意]所以教育很重要就是Education matters most.这道题的答案就是matter。选C

用户评论

ヅ她的身影若隐若现

就是说必须填写的吗?

    有8位网友表示赞同!

ok绷遮不住我颓废的伤あ

我经常在网上表单里看到这个词,现在終於明白了!

    有15位网友表示赞同!

在哪跌倒こ就在哪躺下

原来“require”和“required”意思是一样的呀!

    有20位网友表示赞同!

墨染年华

这是什么编程语言的命令?

    有6位网友表示赞同!

留我一人

好像是在网页设计中会用到这些词吧?

    有17位网友表示赞同!

花菲

这个单词看起来有点英文的感觉,应该是个技术名词吧。

    有11位网友表示赞同!

你瞒我瞒

我要去学习一下“require”和“required”是什么意思!

    有15位网友表示赞同!

▼遗忘那段似水年华

这两种说法的区别到底是什么呢?

    有6位网友表示赞同!

封心锁爱

在网站上看到这些信息要注意啊!

    有11位网友表示赞同!

景忧丶枫涩帘淞幕雨

一定要注意哪些地方是需要填写的。

    有19位网友表示赞同!

熟悉看不清

比如登录的时候,邮箱和密码都是require的吧。

    有17位网友表示赞同!

无所谓

报名填写表格时,某些信息也是需要填写的吧?

    有18位网友表示赞同!

伪心

这个词语在实际生活中经常用到吗?

    有6位网友表示赞同!

一纸愁肠。

感觉这个词语比较正式一些。

    有18位网友表示赞同!

虚伪了的真心

理解这些技术词汇才能更好地浏览网页。

    有13位网友表示赞同!

ゞ香草可樂ゞ草莓布丁

原来“require”和“required”可以用来提醒用户输入信息!

    有9位网友表示赞同!

不识爱人心

看了一下解释,明白了 “require” 和 “required” 意思都是必须的!

    有6位网友表示赞同!

Hello爱情风

谢谢分享!让我对这些词汇有了新的认识!

    有10位网友表示赞同!

标题:require;required是什么意思
链接:https://yyuanw.com/news/gl/37893.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
天地劫幽城再临归真4-5攻略:第四章归真4-5八回合图文通关教学

天地劫幽城再临归真4-5攻略:第四章归真4-5八回合图文通关教学[多图],天地劫幽城再临归真4-5怎么样八回合内通

2025-01-13
航海王热血航线艾尼路怎么玩?艾尼路加点连招攻略大全

航海王热血航线艾尼路怎么玩?艾尼路加点连招攻略大全[多图],航海王热血航线艾尼路怎么加点?艾尼路怎么连招?关

2025-01-13
坎公骑冠剑国际服怎么玩?国际服新手攻略

坎公骑冠剑国际服怎么玩?国际服新手攻略[多图],坎公骑冠剑国际服的玩法是什么样的?关于游戏中的一些新手玩法

2025-01-13
王者荣耀鸿运6+1地狱之眼怎么抽?鸿运抽奖地狱之眼概率获取攻略

王者荣耀鸿运6+1地狱之眼怎么抽?鸿运抽奖地狱之眼概率获取攻略[多图],王者荣耀鸿运抽奖活动的奖池中还有传说

2025-01-13

圆圆网络

关注圆圆网络

抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。
Copyright 2015- 圆圆网络
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请发邮件给我们