代码之家  ›  专栏  ›  技术社区  ›  hendry

如何导出用于在ES6中导入的函数?

  •  1
  • hendry  · 技术社区  · 6 年前

    [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
    
    4 回复  |  直到 6 年前
        1
  •  3
  •   Vialito    6 年前

    export default function hello() {
        return "Hello";
    }
    

    import hello from './module'
    

    导入用导出的模块时,可以选择名称 export default

    import greeting from './module'
    

    你不能导出 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'
    
        2
  •  1
  •   Sudheej    6 年前

    import React, {Component} from 'react`';
    
        3
  •  0
  •   SOUser    6 年前

    您只能将一个变量、函数或任何内容作为默认值导出。然后你可以导入任何你想要的地方。

    export default function hello(){
        return "Hello";
    }
    

    function hello(){
        return "Hello";
    }
    
    export default hello;
    

    import hello from '../module.js'
    
        4
  •  0
  •   Aravind S    6 年前

    进口 hello from 'module' 导出可以命名为导出(每个模块若干个)、默认导出(每个模块一个)、命名和默认的混合。

        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