ด้วย Vue.JS เป็นไปได้ไหมที่จะขยายเราเตอร์ลิงค์หรือผูกเหตุการณ์เข้ากับลิงค์นั้น โดยที่ลิงค์ประเภทใดประเภทหนึ่งจะมีการดำเนินการอื่นเกิดขึ้นอีกหรือไม่
สิ่งที่ฉันต้องการทำคือระบุลิงก์บางลิงก์ในแอปพลิเคชันของฉันไปที่แท็บป๊อปอัป ในขณะที่ลิงก์อื่นไม่ระบุ เช่น.
<router-link>no tab</router-link>
<router-link-tab>router view is updated and a tab is pushed</router-link-tab>
ฉันต้องการหลีกเลี่ยงการผูกเหตุการณ์กับ beforeRoute และตรวจสอบ URL เส้นทาง แต่ขอขอบคุณที่นี่อาจเป็นวิธีเดียวที่จะไปข้างหน้า
สิ่งนี้จำเป็นต้องทำงานในแอป Vue เช่นเดียวกับที่เราเตอร์ลิงก์ทำ และจะไม่อยู่ในองค์ประกอบเดียวเท่านั้น
ฉันจะถอยหลังขนาดนี้เลยเหรอ? จะมีข้อผิดพลาดในการกำหนดองค์ประกอบที่กำหนดเองที่เรียกใช้แท็บใหม่และเรียกว่า router.push
เช่นนี้หรือไม่ ใช้ RouterLink เพื่อเน้นการใช้งานเท่านั้น ฯลฯ
Vue.component('router-link-tab', {
template: `<router-link :to="to" @click.prevent="click">
<slot></slot>
</router-link>
`,
props: {
to: [String, Object],
},
methods:{
click: function () {
console.log(this.to);
this.$router.push(to);
}
}
});