मेरी पहले समाधान यहां पोस्ट के अलावा, वहाँ एक दूसरी विधि है कि मैं अनुसंधान के एक बिट के बाद पाया है: का उपयोग Navigation Guards
मेरे पिछले जवाब में के रूप में विस्तृत, यहाँ है समस्या: vue-router
शुरू हो सकता है पहली बार बनाए जाने के बाद मार्ग घटकों का पुन: उपयोग करना। मार्ग-बाहर निकलने पर इन घटकों को नष्ट करने की वास्तव में कोई आवश्यकता नहीं है, और बाद में मार्ग-प्रविष्टि पर फिर से बनाएं। इसलिए created
मेरे पिछले समाधान में हुक उसी मार्ग पर आने वाली यात्राओं पर आग नहीं लगा सकता है। इसलिए हमारी खिड़की का शीर्षक अपेक्षित काम नहीं कर सकता है।
उस समस्या को दूर करने के लिए, हम विंडो शीर्षक को मार्ग-परिवर्तन ईवेंट पर सेट कर सकते हैं। राउटर इंस्टेंस में afterEach
हुक है जिसे मार्ग परिवर्तन के बाद बुलाया जाता है। यह के रूप में नीचे दिए गए विवरण विंडो शीर्षक सेट करने के लिए इस्तेमाल किया जा सकता:
// Let's say this is your router instance, with all "Named Routes"
const ROUTER_INSTANCE = new VueRouter({
mode: "history",
routes: [
{ path: "/", name: "HomeComponentName", component: HomeComponent },
{ path: "/about", name: "AboutComponentName", component: AboutComponent },
{ path: "*", name: "RouteErrorName", component: RouteError }
]
})
// Assign page titles for each of the "named routes"
// Reason: This allows us to have short named routes, with descriptive title
const PAGE_TITLE = {
"HomeComponentName": "Your Dashboard",
"AboutComponentName": "About Us Page",
"RouteErrorName": "Error: Page not found"
}
ROUTER_INSTANCE.afterEach((toRoute, fromRoute) => {
window.document.title = PAGE_TITLE[toRoute.name]
console.log(toRoute) // this lets you check what else is available to you here
})
आप समान मार्गों के बीच नेविगेट कर रहे हैं, तो यह अभी भी आपकी मदद नहीं कर सकता है, जैसे "/ उपयोगकर्ता/foo" के लिए "/ उपयोगकर्ता/बार"। यदि आप टाइटलबार में उपयोगकर्ता नाम चाहते हैं या कुछ गतिशील पृष्ठ विशिष्ट जानकारी चाहते हैं, तो में विस्तृत पैराम परिवर्तन पर प्रतिक्रिया दें। डॉक्स के आधार पर हमने घटक में watch
उपयोग करने में सक्षम इस प्रकार होना चाहिए:
watch: {
'$route' (toRoute, fromRoute) {
window.document.title = "some page title"
}
}
आशा है कि यह मदद करता है!