在使用httpVueLoader加载的.vue组件中导入js文件

时间:2020-02-27 12:14:11

标签: vue.js

我不希望我的Vue偏离使用webpak, 所以有两种选择 将组件编写为.js文件或 将它们编写为.vue文件,并使用httpVueLaoder加载组件,就好像它们是.js文件一样 与httpvueLoader一起想想直到我想在组件内部使用API​​的时候 我无法获得API 我里面有一个Home.vue组件,其中有一个FormLot.vue组件,它试图导入API.js

erase

在FormLot.vue中

<script>
let FormLot = window.httpVueLoader('./frontEnd/page/lot/FormLot.vue')
module.exports = {
    name:"Home",
     components: {FormLot:FormLot},
...    
};
</script>

API.JS

// _END_ is the absolut path to the site , soi can change it later
let API = import(_END_+'/api/api.js') // dont work return promise
import API from './frontEnd/api/api.js' // dont work componnet dont show at all :(

 let FormLotE1 = window.httpVueLoader(_END_+'/page/lot/FormLotE1.vue')

module.exports ={
    ...
};
</script>

API.JS

module.exports ={
   ...
};

使用API​​.js我尝试导出默认值和module.export都无法正常工作 Nota 使用webpack API.js时可以正常导入并且可以正常工作

1 个答案:

答案 0 :(得分:0)

从路径httpVueLaoder使用导入API时不起作用 所以我尝试做

const API= import(path)

不能使用API​​的问题,不能使用:( 使用await即使使用时也无法解决问题

const API = (async ()=> await import(path))()

我的解决方案仍然使用await调用导入,但不在脚本顶部 我在Mounted()函数中称呼它

async mounted(){

                     API = (await import(_END_+'/api/api.js')).default

    },

请注意,必须使用.default,因为import会返回一个模块:) 在此处输入代码