美文网首页
export、export default和import用法详解

export、export default和import用法详解

作者: 秀萝卜 | 来源:发表于2022-06-13 10:54 被阅读0次

    https://www.jianshu.com/p/541256d8abb3

    export、export default 负责 导出, import 则负责 导入。
    export 在一个 js 文件中可以有多个,export default 最多只能有一个。
    

    1、export

    方式1:先声明后导出,假设 test1.js

    const a1 = 'a1' //var 、let
    function fn1() {
      console.log('我是fn1');
    }
    export { a1, fn1 }
    

    方式2:导出与声明一起,假设 test2.js
    export的函数必须命名

    export const a2 = 'a2' //var 、let
    export function fn2() {
        console.log('我是fn2');
    }
    

    混用:不限个数当然是可以混用的,假设 test3.js

    const a3 = 'a3'
    export function fn3() {
        console.log('我是fn3');
    }
    export {a3}
    

    不管上面哪种形式都可以用下面两种方式使用。

    使用1:用哪个取哪个,还可以命名别名

    import {fn1} from './test1.js'
    import {a2 as ha,fn2} from './test2.js'
    import {a3} from './test3.js'
    fn1()
    console.log(ha)
    fn2()
    console.log(a3)
    

    使用2:全部取出,对象方式使用

    import * as test1 from './test1.js'
    import * as test3 from './test3.js'
    test1.fn1()
    test3.fn3()
    console.log(test3.a3)
    

    2、export default

    方式1:先声明后导出,假设 test4.js

    function fn4() {
        console.log('我是fn4');
    }
    export default fn4
    

    方式2:导出与声明一起,假设test5.js

    export default function fn5() {
        console.log('我是fn5');
    }
    

    方式2这里 fn5 可以是匿名函数如下,这与 export 必须命名函数是一个区别。为什么这里可以是匿名呢?原来 export default 导出的函数在 import 导出的时候都会重新命名,具体意思看下面的示例。

    export default function() {
        console.log('我是fn5');
    }
    

    使用:export default 只有一种使用方式

    import test5 from './test5.js'
    test5()
    

    这个 test5 就是我们给 export default function fn5() 或者 export default function() 重新定义的名字。

    有心的小伙伴可能注意到这里并没有给出 export default 导出 const | let | var 这种变量的示例,那是因为这种变量是不可以直接像 export 一样直接出现在后面的,多值则需要以对象的形式导出,如下(test6.js):

    const a7='a7'   //  let,var
    export default {
        a6:'a6',
        a7:a7,
        fn6(){ 
           console.log('我是fn6'); 
        }
    }
    

    使用还是跟使用 test5.js 一样的

    import moreEle from './test6.js'
    console.log(moreEle.a6)
    moreEle.fn6()
    

    3、export 和 export default 混用,test7.js

    const a1 = 'a1' //var 、let
    function fn1() {
        console.log('我是fn1');
    }
    export { a1, fn1 }
    
    export const a2 = 'a2' //var 、let
    export function fn2() {
        console.log('我是fn2');
    }
    
    const a3 = 'a3'
    export function fn3() {
        console.log('我是fn3');
    }
    export { a3 }
    
    export default function fn5() {
        console.log('我是fn5');
    }
    

    以上 test7.js 使用的时候,要使用 export default 定义的就只能是 import [name] from './test7.js' 形式,export 也是用自己的那两种方式 import {[name],[name] as [alias]} from './test7.js'(即必须有花括号) 或者 import * as [alias] from './test7.js',注意后一种 * 尽管是导出全部的意思,但这并不包括 export default 导出的。

    感谢阅读,喜欢的话点个赞吧:)
    更多内容请关注后续文章。。。

    相关文章

      网友评论

          本文标题:export、export default和import用法详解

          本文链接:https://www.haomeiwen.com/subject/jccmmrtx.html