Comment changer la direction de la page dans Vue sans actualiser la page
P粉333395496
P粉333395496 2023-09-11 16:48:55
0
2
591

Je veux pouvoir changer l'orientation de la page lorsque la valeur change dans Pinia, le code fonctionne bien mais la page se recharge et je ne veux pas que la page se recharge.

Voici mon App.vuefichier

<script setup>
import { useaCountdownStore } from "./stores/countdowns";
import { storeToRefs } from "pinia";

const store = useaCountdownStore();
const { theme, language } = storeToRefs(store);

theme.value === "dark" ? document.documentElement.classList.add("dark") : false; //works
language.value === 'ar' ? document.documentElement.setAttribute('dir','rtl'): false // 需要重新加载页面
</script>

<template>
  <router-view></router-view>
</template>
P粉333395496
P粉333395496

répondre à tous(2)
P粉274161593

Nécessite une liaison de données régulière. Dans ce cas, faites appel à un observateur.

watch(
  language,
  value => {
   if (value === 'ar')
     document.documentElement.setAttribute('dir','rtl')
   else 
     document.documentElement.removeAttribute('dir')
  },
  { immediate: true }
)

Veuillez vous assurer de ne pas accéder à document lors du rendu côté serveur.

P粉317679342

Essayez de placer votre contenu dans un autre élément plutôt que de le modifier document. De plus, utilisez les propriétés calculées pour la réactivité.

<script setup>
import { useaCountdownStore } from "./stores/countdowns";
import { storeToRefs } from "pinia";
import { computed } from "vue";

const store = useaCountdownStore();
const { theme, language } = storeToRefs(store);

const direction = computed(() => language.value === 'ar' ? 'rtl' : 'auto')
</script>

<template>
  <div :class="theme" :dir="direction">
    <router-view></router-view>
  </div>
</template>
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!