如何在Vue.js中将图像用作按钮?

时间:2019-06-10 09:20:11

标签: javascript typescript vue.js pug vue-component

我正在尝试将登录按钮作为Vue.js中的单个文件组件(这是具有Vue.js前端的Rails应用)。如果您单击此按钮,则应该将您带到外部提供商的登录页面。

如何将图像用作按钮?我猜测您使用v-on:click进行实际的重定向,但是我被困在那里。

现在,下面的代码显示了一个类似于img(src="../assets/img/login_button.png")的硬编码按钮。您可以单击它,但这显然不是我想要的。我想显示实际的png图像,而不是路径。

// LoginButton.vue

<template lang="pug">
#login-button
  <button v-on:click="redirect_to_login">img(src="../assets/img/login_button.png")</button>
</template>

<script lang="ts">
import { Vue, Component } from 'vue-property-decorator';

@Component
export default class LoginButton extends Vue{
  redirect_to_login():void{ // I haven't written this method yet 
  }
}
</script>

3 个答案:

答案 0 :(得分:1)

我对pug不熟悉,所以我不知道您需要什么正确的语法。但是您可以使用<router-link>标签来设置路线。例如(使用Vuetify)

    <router-link to="/">
      <v-img src="/path/to/img.gif"/>
    </router-link>

答案 1 :(得分:0)

有什么原因不能只在按钮内使用普通的HTML图像吗?我以前没用过哈巴狗。

<button v-on:click="redirect_to_login"><img src="../assets/img/login_button.png" /></button

尽管由于您使用的是Vue而不是实际的HTML表单,所以您可能甚至不需要按钮,而只需将点击绑定添加到图像中即可

<img src="../assets/img/login_button.png" v-on:click="redirect_to_login" />

答案 2 :(得分:0)

您可以使用:

 <a @click="Redirect">
     <img src='IMAGE_SRC'  />
  </a>

<img @click="Redirect" src='IMAGE_SRC'/>


new Vue({
            el: '#app',
            methods:
            {
               Redirect()
                  {
                     window.location.href = "https://jsfiddle.net/";

                     //or 

                      //this.$router.push('LINK_HERE'); // if ur using router
                  }
               }
      })

演示链接:

https://jsfiddle.net/snxohqa3/5/