【问题标题】:import script wrong order, function not defined导入脚本顺序错误,函数未定义
【发布时间】:2017-06-29 11:09:03
【问题描述】:

我有一个像这样的 vuejs 组件 (map.vue):

<script> 
import '../../assets/js/map.js' 

export default {
    name: 'home',
    data () {
        return {
            init_data: {},
        }
    },
    created: function() {
         this.init_data = window.get_init_data(this.view, function(response) {
               document.title = response.body.page_title;
               init_map(some_arguments);
         });
    }
}
</script>

map.js:

const key = ******;
function init_map(some_args) {
    ...
}

错误:

[Vue 警告]:创建钩子时出错:“ReferenceError: init_map is not 定义”

事实上,在签名之前检查源代码被调用的函数。

注意:我不想在 webpack 条目中包含 map.js,因为我只需要在一个组件中使用此脚本 (map.vue)。

【问题讨论】:

  • 试试require( '../../assets/js/map.js')
  • 已经做了@OlegShleif,问题依然存在。谢谢
  • 如何解释不难?
  • @OlegShleif,解释一下怎么样?

标签: javascript webpack vue.js vuejs2


【解决方案1】:

试试这个

test.js

export function writeHello() {
    console.log('hello');
}

*****.vue

import {writeHello} from './../test.js';

export default {
    created() {
        writeHello();
    }
}

【讨论】:

  • exportexport default有区别吗?两者都有效
  • @HulaHula export 是你命名一个类或函数(或多个)的地方,然后可以通过上面的花括号指定定义来命名imported。 export default 意味着如果没有提供确切的定义,它将在导入时自动返回默认值。一个示例可能是 import foo from '/path/to/bar',其中 foo 成为默认导出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
相关资源
最近更新 更多