未捕获的 ReferenceError: $ 未定义 (VueJS)

Posted

技术标签:

【中文标题】未捕获的 ReferenceError: $ 未定义 (VueJS)【英文标题】:Uncaught ReferenceError: $ is not defined (VueJS) 【发布时间】:2018-07-09 11:42:38 【问题描述】:

我已经开始了一个 VueJS 项目:

vue init webpack my-project

并通过 npm 获得 jQuery:

npm install jquery

我将这一行放在我的 main.js 文件中:

window.$ = window.jQuery = require('jquery')

无论如何,我不能使用这段代码:(来自语义用户界面)

$('.ui.rating')
  .rating()
;

因为我得到这个错误:

Uncaught ReferenceError: $ is not defined

知道为什么会这样吗?

【问题讨论】:

Uncaught ReferenceError: $ is not defined 这个错误大多与没有安装 Jquery 或没有正确声明有关。 你可能需要 require('jquery').default 但不要引用我的话。不过,我认为你真的应该在这里使用import 为什么 window.$ 而不是只有 $?您可能必须使用 mixin 或类似的东西才能在属性中使用它 【参考方案1】:

如果你通过 npm 安装了 jQuery,只需像这样导入它:

import $ from 'jquery'

在你的方法中,你可以开始使用$

methods: 
  getFoo() 
    $( "div.foo" ).html();
  

【讨论】:

它给了我同样的问题 请注意,您需要将其导入到它所使用的文件中,而不是您的 main.js 文件(或任何您称之为起始 js 文件的文件)。所以你需要在你使用它的每个文件中导入它。【参考方案2】:

最好将 jQuery 代码与 Vue 代码分开。您可以通过在资产中创建一个 jQuery 文件并使用 ECMAScript exportimport 功能来实现这一点。

 //your jQuery functions file e.g main.js
    import $ from 'jQuery' //import jQuery 

    export function somethingWithjQuery()
     console.log($)
     

在您的 Vue 组件中,您可以执行以下操作:

 import somethingWithjQuery from './assets/js/main'

    export default 
        name: 'app',
        components: 
            Hello
        ,
        mounted() 
            somethingWithjQuery()
        
    

【讨论】:

以上是关于未捕获的 ReferenceError: $ 未定义 (VueJS)的主要内容,如果未能解决你的问题,请参考以下文章

Rails:ReferenceError:未定义谷歌

未定义函数 - 未捕获的 ReferenceError

打字稿 - 未捕获的 ReferenceError:未定义导出

PhoneGap 错误 - “未捕获的 ReferenceError:cordova 未定义”

未捕获的 ReferenceError:“$ 未定义”[重复]

未捕获的 ReferenceError:未定义窗口