ES6 import 循环加载


1、示例

(1)a.js

import {bar} from './b'; console.log('a.mjs'); console.log(bar); export let foo = 'foo';

(2)b.js

import {foo} from './a'; console.log('b.mjs'); console.log(foo); export let bar = 'bar';

(3)循环引用

<template>
    <div> ES6 循环引用 </div>
</template>

<script> import './a' export default { components: {}, methods: {}, mounted() {} }; </script>

<style scoped>

</style>

控制台输出:

a.js在执行时,import了b.js。因此先执行b.js。在执行b.js时foo还没有定义,因此输出了undefined。

2、解决方法

函数提升

(1)、a.js

import {bar} from './b'; console.log('a.mjs'); console.log(bar()); function foo() { return 'foo' } export {foo};

(2)b.js

import {foo} from './a'; console.log('b.mjs'); console.log(foo()); function bar() { return 'bar' } export {bar};

在执行import {bar} from './b'时,函数foo就已经有定义了,所以b.mjs加载的时候不会报错。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM