button点击后改变路由

一个bug送给有缘人:
场景:

由于自己写的以及element-ui的button样式效果不够优秀,于是从网上down了一个效果极佳的button组件,但是 每点击一下button,都会导致我的路由上多了一个?号
点击前:


0.png

点击后:


1.png

检查代码都没有任何问题,代码如下:

// main.js
import MButton from '@/components/button'
Vue.use(MButton);
// @/components/button/button.vue
<template>
  <button type="button" class="m-button"
          @click="handleClick"
          :disabled="disabled"
          :class="[
      type && 'm-button-' + type,
      size && 'm-button-' + size,
      {
        'm-button-type-plain': plain,
        'm-button-rounded': round,
        'm-button-block': block,
        'active': active,
        'clicked': (effect && clicked && !active)
      }
    ]"
  >
    <slot></slot>
  </button>
</template>
handleClick() {
   this.$emit('click')
}
// @/components/button/index.js
import MButton from './button'

MButton.install = function (Vue) {
  Vue.component(MButton.name, MButton)
}

export default MButton

最后才发现,是由于button有一个默认的submit事件,虽然不知道改变路由的原理是什么,但是知道是因为这个submit事件导致的,接下来只要去掉这个submit事件就好了

// 加上type='button' 就好了
<button type="button">
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 7,447评论 0 17
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 29,075评论 1 45
  • 之前在Sencha Cmd创建Ext JS示例项目演示了用Sencha Cmd来创建一个Login示例。在这里会演...
    写意悠悠阅读 9,140评论 4 24
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 2,706评论 0 7
  • 本节介绍各种常见的浏览器事件。 鼠标事件 鼠标事件指与鼠标相关的事件,主要有以下一些。 click 事件,dblc...
    许先生__阅读 2,889评论 0 4

友情链接更多精彩内容