Dengan Vue.JS, apakah mungkin untuk memperluas tautan router, atau mengikat suatu peristiwa ke dalamnya, sehingga untuk jenis tautan tertentu terjadi tindakan lain?
Apa yang ingin saya lakukan adalah menentukan beberapa tautan di aplikasi saya ke tab pop, sementara yang lain tidak; misalnya
<router-link>no tab</router-link>
<router-link-tab>router view is updated and a tab is pushed</router-link-tab>
Saya ingin menghindari pengikatan suatu peristiwa ke beforeRoute dan memeriksa url rute, tetapi saya menghargai bahwa ini mungkin satu-satunya cara untuk maju.
Ini harus berfungsi di seluruh aplikasi Vue, seperti halnya router-link, dan tidak akan terkandung dalam satu komponen saja.
Apakah saya melakukan hal ini secara terbalik? Apakah akan ada kesulitan dalam menentukan komponen khusus yang memicu tab baru dan disebut router.push
, seperti ini? Menggunakan RouterLink hanya untuk menyorot aktif dll?
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);
}
}
});