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

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

该问题的任何解决方案?

【问题讨论】:

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

标签: jquery laravel vue.js vue-component vue-router


【解决方案1】:

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

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

    },

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

【讨论】:

  • 我认为这种方法在我想使用一次代码时有效,但就我而言,我想在 SPA 中的所有组件上使用该代码。
猜你喜欢
  • 2021-07-18
  • 2019-06-23
  • 2018-03-31
  • 2019-06-18
  • 2022-01-09
  • 2018-04-14
  • 2022-09-23
  • 2017-08-20
  • 2021-03-16
相关资源
最近更新 更多