J'ai le fichier App.vue suivant :
<script setup> import { RouterView } from "vue-router"; </script> <template> <RouterView v-slot="{ Component }"> <transition :name="fade" mode="out-in"> <component :is="Component" /> </transition> </RouterView> </template>
Et les fichiers du routeur suivants :
import { createRouter, createWebHistory } from "vue-router"; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: "/", name: "signin", component: () => import("../views/signin.vue"), }, { path: "/dashboard", name: "dashboard", component: () => import("../views/dashboard.vue"), }, ], }); export default router;
Lorsque j'exécute l'application et que je clique sur n'importe quel lien, que ce soit en utilisant $router.push("/dashboard"); J'ai vérifié de nombreuses autres questions et tutoriels mais malheureusement cela ne fonctionne toujours pas. Une idée de pourquoi la conversion ne se produit pas ? router-link(to ="/dashboard" active-class="active")
Changement :
à
Les transitions ne détectent pas les modifications apportées à la vue, vous devez donc fournir quelque chose qui peut changer. N'oubliez pas non plus que
fade
doit être une véritable animation en CSS, par exemple :Vous pouvez modifier certaines choses dans le code.
Tout d’abord, vous n’avez pas besoin de déclarer
RouterView
的导入,因为它是 全球注册。只要您的项目中安装了vue-router
,您就可以直接在模板上安全地使用RouterView
或router-view
.Deuxièmement, vous devez
name
属性更改为静态属性。编写:name="fade"
意味着您将变量fade
的值传递给name
。根据您的代码,我假设fade
不是变量而是字符串,这意味着您需要将 prop 更改为name="fade"
. Apprenez-en davantage sur les Accessoires statiques et dynamiques. p>Enfin, les transitions nécessitent l'utilisation de CSS. Puisque vous déclarez une transformation nommée, vous devez ajouter le CSS suivant :
Faites attention aux valeurs fournies dans l'attribut
fade
的使用。这是name
en CSS, ce qui signifie si vous avez :Alors votre CSS devrait avoir
.slide-in-enter-active
、.slide-in-enter-leave
etc.