【问题标题】:How to use an image as a button in Vue.js?如何在 Vue.js 中使用图像作为按钮?
【发布时间】:2019-10-24 16:32:48
【问题描述】:

我正在尝试将登录按钮作为 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>

【问题讨论】:

  • 我已经看过那个问题了,但我仍然很困惑。这里仍然是 Vue 初学者。那我应该把img(src="../assets/img/login_button.png")放在哪里呢?

标签: javascript typescript vue.js vue-component


【解决方案1】:

你有什么理由不能在你的按钮中使用普通的 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" />

【讨论】:

  • 谢谢。我们只是在我们的项目中使用 pug,所以我在这里真的没有选择。最后,在 pug 中编写您的解决方案是这样的:img(src="../assets/img/btn_google_signin_dark_normal_web.png" v-on:click="redirect_to_login")
  • 为什么要使用像 Vuetify 这样的框架而不使用它的组件?在这里没有达到目的不是吗?
  • @JamieMarshall 我认为 OP 没有提到 Vuetify。我相信他们试图仅使用 Vue 本身来制作自己的组件。
  • @kevmc,哎呀,我的错。我最终在这里搜索 Vuetify 问题标签。不知道我是如何异花授粉的。
【解决方案2】:

你可以使用:

 <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/

【讨论】:

    【解决方案3】:

    我不熟悉哈巴狗,所以我不知道您需要的正确语法是什么。但是你可以使用&lt;router-link&gt; 标签来设置路由。例如(使用 Vuetify)

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

    【讨论】:

      猜你喜欢
      • 2021-11-07
      • 2011-12-10
      • 2016-10-04
      • 2012-01-05
      • 1970-01-01
      • 2014-02-07
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      相关资源
      最近更新 更多