【问题标题】:exported const variable is undefined in vue导出的 const 变量在 vue 中未定义
【发布时间】:2021-12-16 12:23:18
【问题描述】:

我在一个项目中使用@vue/cli,但我终其一生都无法弄清楚为什么我导出的变量不起作用。这是我的代码设置:

[App.vue]

import {somevar} from './main.js'
console.log(somevar)

[main.js]

import { createApp } from 'vue'
import App from './App.vue'
const somevar = "example"
export {somevar}

createApp(App).mount('#app')

当我运行 npm run serve 时,somevar 只是在浏览器控制台中以未定义的形式返回...?

我尝试使用普通设置(不在 vue 中)来执行此操作,并且它可以工作,所以我认为这是 vue 专门发生的事情?

【问题讨论】:

标签: javascript vue.js es6-modules vue-cli


【解决方案1】:

我认为在 App.vue 中导入 main.js 是不可能的,它本身是在 main.js 中导入的(循环依赖)。

我尝试重新设置您的设置,导致浏览器控制台中出现Uncaught ReferenceError: Cannot access 'App' before initialization(我有一个基于 vite 2 和 vue 3 的项目)。

我建议将常量提取到额外的 javascript 文件中,例如 example.js,然后将其导入 App.vue(如有必要,还可以导入 main.js)。

以下设置适用于我。

[App.vue]

<script setup>
import { somevar } from './example.js'
console.log(somevar)
</script>

[main.js]

import { createApp } from 'vue'
import App from './App.vue'

createApp(App).mount('#app')

[example.js]

const somevar = "example"
export {somevar}

【讨论】:

  • 太好了,没想到main.js是vue的一种保留文件。它现在可以与您建议的调整一起使用,仍在学习!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 2018-01-10
  • 2016-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多