cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menukar arah halaman dalam Vue tanpa memuat semula halaman

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粉333395496P粉333395496465 hari yang lalu619

membalas semua(2)saya akan balas

  • P粉274161593

    P粉2741615932023-09-12 13:06:04

    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.

    balas
    0
  • P粉317679342

    P粉3176793422023-09-12 09:04:32

    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>
    

    balas
    0
  • Batalbalas