मैं Vue.js
वैनिला जावास्क्रिप्ट के समान एक पुनर्निर्देशन करना चाहता हूं
window.location.href = 'some_url'
मैं इसे Vue.js में कैसे प्राप्त कर सकता हूं?
मैं Vue.js
वैनिला जावास्क्रिप्ट के समान एक पुनर्निर्देशन करना चाहता हूं
window.location.href = 'some_url'
मैं इसे Vue.js में कैसे प्राप्त कर सकता हूं?
जवाबों:
यदि आप उपयोग कर रहे हैं vue-router
, तो आपको router.go(path)
किसी विशेष मार्ग पर नेविगेट करने के लिए उपयोग करना चाहिए । राउटर का उपयोग कर एक घटक के भीतर से पहुँचा जा सकता है this.$router
।
अन्यथा, window.location.href = 'some url';
गैर-पृष्ठ एप्लिकेशन के लिए ठीक काम करता है।
EDIT : router.go()
VueJS 2.0 में बदला गया। आप उपयोग router.push({ name: "yourroutename"})
या अभी- router.push("yourroutename")
अभी पुनर्निर्देशित कर सकते हैं ।
Uncaught ReferenceError: router is not defined
त्रुटि, घटक में राउटर इंजेक्ट कैसे करें?
this.$router.push('routename)
डॉक्स के अनुसार, रूटर.पश पसंदीदा विधि की तरह लगता है:
किसी भिन्न URL पर जाने के लिए, राऊटर का उपयोग करें। यह विधि इतिहास स्टैक में एक नई प्रविष्टि को आगे बढ़ाती है, इसलिए जब उपयोगकर्ता ब्राउज़र बैक बटन पर क्लिक करता है तो उन्हें पिछले URL पर ले जाया जाएगा।
स्रोत: https://router.vuejs.org/en/essentials/navigation.html
FYI करें: वेबपैक और कंपोनेंट सेटअप, सिंगल पेज ऐप (जहां आप मेन.जेएस के माध्यम से राउटर आयात करते हैं), मुझे यह कहकर राउटर फ़ंक्शन को कॉल करना पड़ा:
this.$router
उदाहरण: यदि आप एक शर्त पूरी होने के बाद "होम" नामक मार्ग पर पुनर्निर्देशित करना चाहते हैं:
this.$router.push('Home')
महज प्रयोग करें:
window.location.href = "http://siwei.me"
वाउ-राउटर का उपयोग न करें, अन्यथा आप " http://yoursite.com/#//http://si_site " पर पुनर्निर्देशित हो जाएंगे
मेरा वातावरण: नोड 6.2.1, vue 1.0.21, उबंटू।
जब एक घटक स्क्रिप्ट टैग के अंदर आप राउटर का उपयोग कर सकते हैं और ऐसा कुछ कर सकते हैं
this.$router.push('/url-path')
बस एक मृत सरल मार्ग:
this.$router.push('Home');
यह भी कोशिश कर सकते हैं ...
router.push({ name: 'myRoute' })
window.location = url;
'url' वह वेब url है जिसे आप पुनर्निर्देशित करना चाहते हैं।
आप वी-बाइंड को सीधे टेम्पलेट की तरह भी उपयोग कर सकते हैं ...
<a :href="'/path-to-route/' + IdVariable">
:
का संक्षिप्त नाम है v-bind
।
`/path-to-route/${IdVariable}`
" या नामित मार्ग के रूप में यहाँ बताया गया है ( राऊटर .vuejs.org:href="{ name: 'NamedRouteDeclaredAtRouter' , params: { id: idValue } }"
यदि कोई एक पृष्ठ /a
से दूसरे पृष्ठ पर स्थायी पुनर्निर्देशन चाहता है/b
हम redirect:
इसमें जोड़े गए विकल्प का उपयोग कर सकते हैं router.js
। उदाहरण के लिए यदि हम रूट या बेस url टाइप करने पर उपयोगकर्ताओं को हमेशा एक अलग पृष्ठ पर पुनर्निर्देशित करना चाहते हैं /
:
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"),
},
]
तो, मैं क्या देख रहा था, जहां डाल करने के लिए केवल थाwindow.location.href
और इस निष्कर्ष मैं के लिए आया था कि पुन: निर्देशन के लिए सबसे अच्छा और सबसे तेज़ तरीका मार्गों में है (कि जिस तरह से है, हम इससे पहले कि हम अनुप्रेषित लोड करने के लिए कुछ भी के लिए इंतजार नहीं है) था।
ऐशे ही:
routes: [
{
path: "/",
name: "ExampleRoot",
component: exampleComponent,
meta: {
title: "_exampleTitle"
},
beforeEnter: () => {
window.location.href = 'https://www.myurl.io';
}
}]
शायद यह किसी की मदद करेगा ।।
अपने मूल अनुरोध के अनुरूप रहने के लिए:
window.location.href = 'some_url'
आप ऐसा कुछ कर सकते हैं:
<div @click="this.window.location='some_url'">
</div>
ध्यान दें कि यह Vue के राउटर का उपयोग करने का लाभ नहीं उठाता है, लेकिन यदि आप "वेनिला जावास्क्रिप्ट के समान Vue.js में पुनर्निर्देशन करना चाहते हैं", तो यह काम करेगा।