Aplikasi satu halaman aplikasi web ditulis menggunakan vue vue-router.
Sesetengah halaman perlu dilarang untuk kembali. Saya menulis sama ada halaman semasa boleh kembali dalam meta maklumat meta penghalaan, seperti allowBack.
Saya menemui maklumat dan cara untuk melumpuhkan kembali ialah
history.pushState(null, null, location.href)
Projek sebelum ini menggunakan vue1.0, penyelesaiannya ialah
1. 在全局的router.beforeEach 里面 判断当前路由的handler里面的allowBack变量是否为false
2. 如果为false 则 history.pushState(null, null, location.href)
Kini saya bertukar kepada vue2.0, kaedah asal tidak berfungsi lagi,
Masalahnya sekarang ialah saya tidak tahu di mana hendak meletakkan kod history.pushState(null, null, location.href)
Atau adakah anda mempunyai sebarang penyelesaian lain? Terima kasih! !
Sebenarnya, senario penggunaan utama adalah ini,
Klik bar tab untuk beralih ke halaman lain Jika saya berada di halaman a dan klik tabbar untuk pergi ke halaman b, saya tidak boleh kembali ke halaman a dengan menekan kekunci kembali. tetapi saya boleh pergi ke halaman a dengan mengklik bar tab
Soal jawab...
Syaratnya ialah: laluan tertentu tidak boleh dikembalikan melalui penyemak imbas, dan pada masa yang sama tidak menjejaskan pertukaran antara satu sama lain
Mari kita selesaikan penyelesaian dan penggunaan:
1. Tambahkan maklumat meta pada laluan ini dalam konfigurasi penghalaan, seperti:
2 Dapatkan status allowBack dalam fungsi penghala global.beforeEach, dan kemas kini nilai allowBack vuex pada masa yang sama, seperti:
Kod ini mesti ditulis selepas next(), kerana location.href ditulis sebelum next() bukan alamat kepada, yang berbeza sedikit daripada vue1.0
3 Langkah seterusnya ialah teras, daftarkan acara onpopstate dalam mounted in app.vue:
Mengalih keluar history.pushState(null, null, location.href) juga boleh menghalang pengunduran, tetapi komponen akan dipaparkan semula, jadi bahagian ini juga kritikal
Cuba ini dan lihat