问题
vue 在assets\js\test.js
创建一个test.js
al = function(s){alert(s)}(window, document, XMLHttpRequest)
export {al};
如何在.vue
文件引入这个js
???
或者需求是vue如何引入OpenInstall
问题
vue 在assets\js\test.js
创建一个test.js
al = function(s){alert(s)}(window, document, XMLHttpRequest)
export {al};
如何在.vue
文件引入这个js
???
或者需求是vue如何引入OpenInstall
首先你的al没有声明,而没有声明在你使用webpack打包的时候使用了babel这种工具会默认使用严格模式处理你的源代码;
严格模式下,未声明变量就使用,这可能是al is not defined的最直接原因
禁用严格模式:https://segmentfault.com/q/10...
就算在非严格模式下:
当你看到al的时候,al已经被赋值下面这段代码
function(s){alert(s)}(window, document, XMLHttpRequest)
而上面那段代码是个求值的自执行函数,他的值就是function(s){alert(s)}函数的返回值,而你没有写返回,默认返回undefined,所以你导出了undefined
应该就是这么回事吧
ES6的模块自动采用严格模式,不管你有没有在模块头部加上"use strict";
改成这样看看
var al = function(s){alert(s)}(window, document, XMLHttpRequest)
export {al};
在你的.vue组件中
<script>
import {al} from "test.js"
console.log(al) //是不是能得到一个undefined
<script>
6 回答2.9k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
4 回答2.6k 阅读
2 回答963 阅读✓ 已解决
这个其实跟你导入组件是一样的,你只需要在
.vue
文件的script
标签中import { al } from '/*your path*/assets\js\test.js'
即可,这跟vue
没有关系,是es6
的模块