鍍金池/ 問答/HTML/ [圖片] 請教 vue怎么引入匿名函數(shù)???

[圖片] 請教 vue怎么引入匿名函數(shù)???

問題

vue 在assets\js\test.js創(chuàng)建一個test.js

al = function(s){alert(s)}(window, document, XMLHttpRequest)
export {al};

如何在.vue文件引入這個js???

或者需求是vue如何引入OpenInstall

回答
編輯回答
尛憇藌

樓上說的都對,我補充個前提:你的瀏覽器需要支持 ES6 Modules;或者你需要使用 webpack 進行打包。

2017年10月11日 07:59
編輯回答
撿肥皂

這個其實跟你導入組件是一樣的,你只需要在.vue文件的script標簽中import { al } from '/*your path*/assets\js\test.js'即可,這跟 vue 沒有關(guān)系,是es6的模塊

2017年4月14日 13:03
編輯回答
淡墨

首先你的al沒有聲明,而沒有聲明在你使用webpack打包的時候使用了babel這種工具會默認使用嚴格模式處理你的源代碼;
嚴格模式下,未聲明變量就使用,這可能是al is not defined的最直接原因
禁用嚴格模式:https://segmentfault.com/q/10...
就算在非嚴格模式下:
當你看到al的時候,al已經(jīng)被賦值下面這段代碼
function(s){alert(s)}(window, document, XMLHttpRequest)
而上面那段代碼是個求值的自執(zhí)行函數(shù),他的值就是function(s){alert(s)}函數(shù)的返回值,而你沒有寫返回,默認返回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>
2017年10月16日 12:59
編輯回答
傻叼
export default al

import al from 'XXXXX';
2017年3月28日 13:43