gpt4 book ai didi

jquery - Vue路由改变页面时如何加载Jquery插件/脚本?

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:55 26 4
gpt4 key购买 nike

我在这里四处寻找答案,但已经提供的答案都不适合我。

这是一个工作演示 codepen.io/figaro/pen/mBvWJa

我的项目很简单,一个用 Vue 处理页面路由的单页程序。我在每个不同的页面上都有一些基于 jQuery 的内容。当我第一次加载页面时,jQuery 插件显示正常。但是当我导航到其他页面时,jQuery 插件不会重新加载。自从 Hook 以来,我已经尝试了所有我能想到的......安装,beforeRouteEnter,beforeRouteLeave,更新等,但它们都不起作用。我试过使用 this.$nextTick(function () {} 但这也不起作用。

jQuery 插件是一个漂亮的旋转木马。是的,我知道有一个官方的 vue slick 包装器,但我没有使用 CLI ....我的项目只是通过 CDN 连接了 vue 和 vue 路由器,我不知道如何将它与我的项目一起使用已设置(他们的示例适用于单个文件组件)。我不在乎解决方案是否有问题或不是最佳实践,我只需要让 Vue 在每个页面上加载灵活的初始化脚本。我看到了制作指令或组件的示例,但它们对我来说没有意义,因为它们假设您使用的是单个文件组件,而我不是。有什么办法吗?

main.js 

const NotFoundPage = {
name: "NotFoundPage",
template: "#404-template"
};

const routes = [
{ path: "/", component: Industry },
{ path: "/about", component: My Page },
{ path: "/contact", component: About},
{ path: "*", component: NotFoundPage }
];

const router = new VueRouter({
routes
});

new Vue({
router,
template: "#root-template",
mounted: function() {
this.$nextTick(function () {
})
},
beforeRouteUpdate ( to, from , next ) {
this.$nextTick(function () {
})
},
ready: function() {
this.$nextTick(function () {
})
},
updated () {
}
}).$mount("#app");

html

<div id="app"></div>

<template id="root-template">
...stuff

<view-router></view-router>

</template>

<template id="industry"></template> etc

jquery脚本

$('.gallery-responsive').slick({
infinite: true,
speed: 300,
slidesToShow: 3,
draggable: true,
edgeFriction: 0.30,
slidesToScroll: 1,
responsive: [{
breakpoint: 1100,
settings: {
slidesToShow: 2,
slidesToScroll: 1
}
}, {
breakpoint: 900,
settings: {
slidesToShow: 2,
slidesToScroll: 1
}
}, {
breakpoint: 800,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
dots: false,
arrows: false,
}
}
]

});

这是一个工作演示 codepen.io/figaro/pen/mBvWJa

最佳答案

我尝试了您的演示并使用 next 修复了它 ( check updated pen here )。

beforeRouteEnter(to, from, next) {
next(vm => {
$(".single-item").slick({
dots: true
});
})
}

问题是你试图在组件中的 html 元素完全建立之前使用 slick。相反,调用 next on the end of the navigation resolution flow .

关于jquery - Vue路由改变页面时如何加载Jquery插件/脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46944050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com