更改路由时jQuery在vue组件中不起作用

Posted

技术标签:

【中文标题】更改路由时jQuery在vue组件中不起作用【英文标题】:jQuery not working in vue component when change route 【发布时间】:2021-01-11 02:34:24 【问题描述】:

我有一个问题,jQuery 脚本文件不能在 vue 组件内工作,但它在它之外工作,我找到了一个解决方案,将所有脚本文件放在 vue 组件内的脚本部分,但我对每个页面都使用此代码。 注意 : jQuery 文件在组件第一次加载时运行,但是当使用vue-router 切换到另一个路由时会出现问题。

该问题的任何解决方案?

【问题讨论】:

Vue 是否可以访问 jQuery?它是否与其他组件一起使用?还是在 Vue 中根本不可用? @selfagency jQuery 在组件外部运行良好,但在组件内部只有在直接进入指定路线时才能工作,并且在更改路线时不起作用。 如果您在两条路由上使用相同的组件,您可能正在利用组件的可重用性,因此该组件只安装一次,脚本只触发一次。您可以使用路由器组件中的 :key 属性来强制在每次路由更改时重新渲染组件: 当然,您会丢失Vue JS 除了反应性之外最重要的优势就是可重用性。 【参考方案1】:

你能写一个示例使用区域吗? 当这种情况发生在我身上时,我通常通过在 app.vue 文件的挂载区域中使用一个短的 setTimeOut 来解决它。但我必须看看你的例子。 例如;

 methods: 
      
        jqueryFunction: function () 
            //your jquery codes
        ,

    ,

mounted() 
        setTimeout(function (evt) 
            this.jqueryFunction();
        .bind(this), 3000);
    ,

【讨论】:

我认为这种方法在我想使用一次代码时有效,但就我而言,我想在 SPA 中的所有组件上使用该代码。

以上是关于更改路由时jQuery在vue组件中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

物化表单在 vue.js 组件中不起作用

Laravel-vuejs(Vue 路由器)Javascript 在 onchange url 中不起作用

jQuery .css background-position-x 在悬停时更改在 IE 中不起作用

组件动态导入在 router.js 中不起作用

为啥 React 路由在组件中不起作用?

反应路由器重定向在私有路由中不起作用