Bagaimana untuk menukar arah halaman dalam Vue tanpa memuat semula halaman
P粉333395496
P粉333395496 2023-09-11 16:48:55
0
2
614

Saya mahu dapat menukar orientasi halaman apabila nilai berubah dalam Pinia, kod berjalan dengan baik tetapi halaman dimuat semula dan saya tidak mahu halaman dimuat semula.

Ini adalah App.vuefail

saya
<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

membalas semua(2)
P粉274161593

Memerlukan pengikatan data biasa. Dalam kes ini, gunakan pemerhati.

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

Sila pastikan untuk tidak mengakses document semasa pemaparan sebelah pelayan.

P粉317679342

Cuba letak kandungan anda dalam elemen lain daripada mengubah suainya document. Selain itu, gunakan sifat yang dikira untuk responsif.

<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>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan