[英]How do I export a function for importing in ES6?
在节点v10.5.0中我在做什么错了
[hendry@t480s learn2]$ node --experimental-modules main.mjs
(node:23920) ExperimentalWarning: The ESM module loader is experimental.
file:///tmp/learn2/main.mjs:1
import {hello} from 'module' // or './module'
^^^^^
SyntaxError: The requested module 'module' does not provide an export named 'hello'
at ModuleJob._instantiate (internal/modules/esm/module_job.js:80:21)
[hendry@t480s learn2]$ cat main.mjs
import {hello} from 'module' // or './module'
let val = hello() // val is "Hello";
console.log('hi there')
console.log(val)
[hendry@t480s learn2]$ cat module.mjs
export function hello() {
return "Hello";
}
export default hello
如果模块中只有一个功能,则可以执行以下操作:
export default function hello() {
return "Hello";
}
然后像这样导入它:
import hello from './module'
在导入使用export default
导出的模块时,可以选择一个名称:
import greeting from './module'
您不能使用export default
导出const
let
和var
如果模块中有多个功能,则可以执行以下操作:
export function hello() {
return "Hello";
}
export function bye() {
return "Bye";
}
要么
function hello() {
return "Hello";
}
function bye() {
return "Bye";
}
export { hello, bye };
并以这种方式导入函数:
import { hello } from './module'
您好是默认导出
例如,在react中,React是默认导出,因为这通常是您唯一需要的部分。 您不一定总是使用Component,因此这是一个命名的导出,可以在需要时导入。
import React, {Component} from 'react`';
hello from 'module'
导入hello from 'module'
因为您默认将其导出。 导出可以命名为export(每个模块几个),默认导出(每个模块一个),已命名和默认的混合。 命名为
export function square(x) {
return x * x;
}
export function diag(x, y) {
return sqrt(square(x) + square(y));
}
import { square, diag } from '---';
在默认导出中,我们这样写,即export default function(){}
并在文件中只有一个导出时使用。 注意该函数没有名称。
//------ myFunc.js ------
export default function () { ... };
//------ main1.js ------
import myFunc from 'myFunc';
myFunc();
备忘单: https : //hackernoon.com/import-export-default-require-commandjs-javascript-nodejs-es6-vs-cheatsheet-different-tutorial-example-5a321738b50f
默认情况下,您只能导出一个变量或函数或任何内容。 那么您可以将其导入到任何位置。
export default function hello(){
return "Hello";
}
或者,在文件的最后导出函数。
function hello(){
return "Hello";
}
export default hello;
然后,您可以导入为
import hello from '../module.js'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.