vue router fait défiler jusqu'au hachage sans actualiser le composant
P粉322319601
P粉322319601 2024-03-26 09:37:39
0
1
439

J'utilise Vue 3 et vue-router 4.

Si j'ai un lien de hachage dans un composant

<router-link :to="{ hash: '#l1' }">Section - 1</router-link>
<router-link :to="{ hash: '#l2' }">Section - 2</router-link>
...
<section id="l1">...</section>
<section id="l2">...</section>

Dans mon routeur, j'ai

const router = createRouter({
  history: createWebHistory(),
  routes,
  scrollBehavior(to, from, savedPosition) {
    if (to.hash) {
      return {
        el: to.hash,
      }
    }
  },
})

Cliquer sur le lien du routeur fait défiler jusqu'à l'emplacement souhaité, mais le composant est recréé pendant le défilement, je perds donc toutes les données que j'avais précédemment obtenues de l'API.

Existe-t-il un moyen d'éviter la recréation de composants si la navigation se fait au sein de la même page ?

MISE À JOUR Si je clique sur l'un de ces liens de hachage, la méthode de configuration du composant sera à nouveau exécutée afin que le composant soit recréé. Si je clique sur le même lien de hachage, il défile simplement et le composant reste actif. Cliquez sur n’importe quel autre lien de hachage et le composant sera recréé à nouveau.

P粉322319601
P粉322319601

répondre à tous(1)
P粉092778585

Dans ce cas, vous pouvez simplement utiliser une balise de lien normale :

Section - 1

Si vous souhaitez utiliser <router-link>, veuillez lire cette question (https://forum.vuejs.org/t/how-to-handle-anchors-bookmarks-with-vue-router/14563), où beaucoup de ils reçoivent des suggestions sur la façon d’obtenir les résultats souhaités.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!