如何在 vuejs 组件中包含 js 文件?

Posted

技术标签:

【中文标题】如何在 vuejs 组件中包含 js 文件?【英文标题】:How to include js files on a vuejs component? 【发布时间】:2018-06-28 10:10:39 【问题描述】:

我刚开始研究如何用vuejs框架做一个laravel api,我有很多疑问。其中一个是:如何在特定的 vue 组件中包含 js 文件?现在,我在我的 vue 客户端的索引上导入我所有的 js 文件,但我认为它是如何在其特定的 vue 组件上加载特定的 js 文件。我已经尝试过require('assets/path/to/jsfile')import('assets/path/to/jfsile'),但没有任何效果。

例如:

在我的文件夹中,我有这样的结构:myapp -> static -> myjsfolder -> myjsfile

在我的 vue 组件中,我想导入我的 myjsfile。我使用的管理模板是 AdminLTE,laravel 作为后端,webpack 作为 vuejs 上的客户端。

【问题讨论】:

【参考方案1】:

你的 js 文件有导出什么东西吗?

如果是这样,请尝试使用:

import * as Something from 'assets/path/to/jsfile'

路径将相对于组件,因此您可能需要使用 ./../path 例如。

编辑:以下是否有效?假设正在使用单个文件组件:

<script type="text/javascript" src="some/js/file.js"></script>
<script type="text/ecmascript-6">
    export default 
        ...
    
</script>

teste.js 内添加一个函数:

function printToConsole() 
    console.log('working')

然后稍后在您的组件中调用printToConsole()

或使用 IIFE

(function () 
    console.log('working')
 )()

【讨论】:

不是。其中一些不出口任何东西。那就是问题所在。由于它们什么都不导出,我必须将它们导入我的索引。所以,我所有的 js 文件都在 index.html 上。太烂了! 你能在一个普通的&lt;script&gt;标签中要求它们吗? 不,即使我将完整路径放入文件,我的 vue 组件也不会执行它。 可以发teste.js的内容吗?您需要将其内容包装在立即调用的函数中以使其立即执行。 好的,然后没有调用脚本。您要么需要将其包装在一个函数中并调用该函数,要么将内容包装在一个立即调用的函数中,例如(function () console.log('working'))()

以上是关于如何在 vuejs 组件中包含 js 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不编译的情况下在 VueJs 中包含 JSON 文件

如何在vue js中包含jquery库以及如何调用? [复制]

如何在 Angular js 中包含我的组件的 .css 文件

如何使用 vue js 在 html 文件中包含不同的 html 文件?

如何在 vuejs webpack cli 项目中包含 jquery?

如何在 JSFL 文件中包含一些 js 文件?