Difference between routing inside v-btn and using router-link

Artur Mello picture Artur Mello · Sep 20, 2017 · Viewed 8.5k times · Source

I am learning Vue.js, and, following a tutorial, a is used to route the page to another. He used a button wrapped by this tag, and I found that using the routing directive inside the tag. I was wondering, what's the difference between this two ways of going from one page to another? Both of them seems to be producing the same behavior (and I am not sending or receiving any data when changing pages).

Codes for comparison:

Using v-btn

<v-btn :to="{name: 'songs-create'}" 
      dark medium right bottom fab absolute 
      class="pink" slot="action">
        <v-icon>add</v-icon>
    </v-btn>

Using router-link

<router-link :to="{name: 'Hello'}" tag="span" class="logo">Tab Tracker</router-link>

Thanks in advance!

Answer

Thaadikkaaran picture Thaadikkaaran · Sep 20, 2017

v-btn is a component of vuetifyjs whereas router-link is component of vue-router.

When you use v-btn with to attribute by passing the path object, it internally uses the vue-router's router-link component's api.

So v-btn wraps the functionality of router-link when it is used with to attribute.

The reason why he could have been used the v-btn is to accomplish some other stuff like button styles and handling other events etc.