js中import是引用同一个

JavaScript010

js中import是引用同一个,第1张

js中import是引用同一个?同一个页面多次调用相同或不同组件,组件中又引用了重复js,结果也是一样:只引用一次相同js静态的import 语句用于导入由另一个模块导出的绑定。无论是否声明了 strict mode ,导入的模块都运行在严格模式下。在浏览器中,import 语句只能在声明了 type=“module” 的 script 的标签中使用。

import()

require()

功能相同,但具有一定程度的自动化特性。

假设有如下的目录结构:

app/

app/classes/

app/classes/myclass.luaapp/classes/myclassbase.luaapp/classes/data/data1.luaapp/classes/data/data2.lua

myclass

中需要载入

myclassbase

myclassdata。如果用

require(),myclass

内的代码如下:

local

myclassbase

=

require("app.classes.myclassbase")

local

myclass

=

class("myclass",

myclassbase)

local

data1

=

require("app.classes.data.data1")

local

data2

=

require("app.classes.data.data2")

假如将

myclass

及其相关文件换一个目录存放,那么就必须修改

myclass

中的

require()

命令,否则将找不到模块文件。

而使用

import(),只需要如下写:

local

myclassbase

=

import(".myclassbase")

local

myclass

=

class("myclass",

myclassbase)

local

data1

=

import(".data.data1")

local

data2

=

import(".data.data2")

当在模块名前面有一个"."

时,import()

会从当前模块所在目录中查找其他模块。因此

myclass

及其相关文件不管存放到什么目录里,都不再需要修改

myclass

中的

import()

命令。这在开发一些重复使用的功能组件时,会非常方便。