Vue.js
Vanilya javascript'e benzer bir yeniden yönlendirme yapmak istiyorum
window.location.href = 'some_url'
Bunu Vue.js'de nasıl başarabilirim?
Vue.js
Vanilya javascript'e benzer bir yeniden yönlendirme yapmak istiyorum
window.location.href = 'some_url'
Bunu Vue.js'de nasıl başarabilirim?
Yanıtlar:
Kullanıyorsanız vue-router
, router.go(path)
belirli bir rotaya gitmek için kullanmalısınız . Yönlendiriciye kullanılarak bir bileşenin içinden erişilebilir this.$router
.
Aksi takdirde, window.location.href = 'some url';
tek sayfalı olmayan uygulamalar için iyi çalışır.
EDIT : router.go()
VueJS 2.0'da değiştirildi. Yeniden yönlendirmek için router.push({ name: "yourroutename"})
veya hemen router.push("yourroutename")
şimdi kullanabilirsiniz.
Uncaught ReferenceError: router is not defined
hata, Yönlendirici bileşene nasıl enjekte edilir?
this.$router.push('routename)
Dokümanlara göre router.push tercih edilen yöntem gibi görünüyor:
Farklı bir URL'ye gitmek için router.push kullanın. Bu yöntem, geçmiş yığınına yeni bir giriş iter, böylece kullanıcı tarayıcı geri düğmesini tıkladığında önceki URL'ye götürülür.
kaynak: https://router.vuejs.org/en/essentials/navigation.html
Bilginize: Web paketi ve bileşen kurulumu, tek sayfalı uygulama (yönlendiriciyi Main.js aracılığıyla içe aktardığınız yer), şunu söyleyerek yönlendirici işlevlerini çağırmak zorunda kaldım:
this.$router
Örnek: Bir koşul karşılandıktan sonra "Ana Sayfa" adlı bir rotaya yeniden yönlendirmek istiyorsanız:
this.$router.push('Home')
sadece kullan:
window.location.href = "http://siwei.me"
Vue-router kullanmayın, aksi takdirde " http://yoursite.com/#!/http://siwei.me " adresine yönlendirileceksiniz.
ortamım: düğüm 6.2.1, vue 1.0.21, Ubuntu.
Bir bileşen komut dosyası etiketinin içindeyken yönlendiriciyi kullanabilir ve bunun gibi bir şey yapabilirsiniz.
this.$router.push('/url-path')
Sadece basit bir yönlendirme:
this.$router.push('Home');
bunu da deneyebilirsin ...
router.push({ name: 'myRoute' })
Ayrıca v-bind'i doğrudan şablona da kullanabilirsiniz ...
<a :href="'/path-to-route/' + IdVariable">
:
kısaltmasıdır v-bind
.
`/path-to-route/${IdVariable}`
" Veya burada belirtilen adlandırılmış yolu ( router.vuejs.org/guide/essentials/named-routes.html ): :href="{ name: 'NamedRouteDeclaredAtRouter' , params: { id: idValue } }"
Herhangi biri bir sayfadan /a
diğerine kalıcı yönlendirme istiyorsa/b
redirect:
Eklenen seçeneği kullanabiliriz router.js
. Örneğin, kullanıcıları kök veya temel URL'yi yazdığında her zaman ayrı bir sayfaya yönlendirmek istiyorsak /
:
const router = new Router({
mode: "history",
base: process.env.BASE_URL,
routes: [
{
path: "/",
redirect: "/someOtherPage",
name: "home",
component: Home,
// () =>
// import(/* webpackChunkName: "home" */ "./views/pageView/home.vue"),
},
]
Yani, aradığım şey sadece nereye koymam gerektiğiydi window.location.href
ve vardığım sonuç, yeniden yönlendirmenin en iyi ve en hızlı yolunun rotalarda olduğuydu (bu şekilde, yeniden yönlendirmeden önce hiçbir şeyin yüklenmesini beklemiyoruz).
Bunun gibi:
routes: [
{
path: "/",
name: "ExampleRoot",
component: exampleComponent,
meta: {
title: "_exampleTitle"
},
beforeEnter: () => {
window.location.href = 'https://www.myurl.io';
}
}]
Belki birine yardımcı olur ..
Orijinal isteğiniz doğrultusunda kalmak için:
window.location.href = 'some_url'
Bunun gibi bir şey yapabilirsiniz:
<div @click="this.window.location='some_url'">
</div>
Bunun, Vue'nun yönlendiricisini kullanmaktan yararlanmadığını, ancak "Vue.js'de vanilya javascript'e benzer bir yeniden yönlendirme yapmak" istiyorsanız, bunun işe yarayacağını unutmayın.