Skip to content
Advertisement

Giving a value to a href in a anchor tag with Vue

Sounds dumb but I can’t find a way to pass a variable data defined in the href:

ComponentFile.vue I tried all of those:

<a href=" url ">{{ url }}</a>
<a href=" {{ url }}">{{ url }}</a>
<a href=" {{ url }}">{{ url }}</a>
<a v-bind:href="url">{{ url }}</a>
<a @click=" url " v-bind:href="url"> {{ url }}</a>


...
export default {
        data() {
                   url: 'http://anywhere.com'
  }
}

What is the correct way?

Thanks!

Advertisement

Answer

You’ve defined data() as a function, but it isn’t returning anything. It should return an object with the data like so:

export default {
    data() {
        return {
            url: 'http://anywhere.com'
        }
    }
}

Then either of these will work:

<a href="{{url}}">{{ url }}</a>
<a v-bind:href="url">{{ url }}</a>

EDIT FOR VUE 2:

Interpolating variables in attributes is no longer recommended. Change:

<a href="{{url}}">{{ url }}</a>

To one of these:

<a :href="url">{{ url }}</a>
<a v-bind:href="url">{{ url }}</a>
User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement