iView的Button按钮点击没反应是怎么回事?

慧玲 阅读 67

我在用 iView 的 Button 组件,绑定了 click 事件,但点按钮完全没反应,控制台也不报错。我试过用原生的 <button> 是可以的,换成 iView 的就不行了。

代码是这样写的:

<Button @click="handleClick">点我</Button>

方法也定义了,但就是不触发,是不是写法有问题?

我来解答 赞 10 收藏
二维码
手机扫码查看
2 条解答
轩辕洋毅
iView的Button组件点击没反应这个我遇到过,通常是几种情况:

第一检查下是不是忘了引入Button组件,虽然看起来很简单但新手容易漏。看看你的main.js或者组件里有没有写:
import { Button } from 'view-design';
Vue.component('Button', Button);


第二可能是事件绑定写法问题,iView的Button有时候对事件绑定比较敏感。试试这两种写法:
// 这种
<Button @on-click="handleClick">点我</Button>

// 或者这种
<Button v-on:click.native="handleClick">点我</Button>


第三可能是组件库版本问题,不同版本的iView事件名可能有差异。你可以console.log(Button)看看组件的props定义。

我刚查了下最新版iView文档,现在推荐用@click就行,但老版本确实要用@on-click。你先试试加上native修饰符或者换成on-click,应该就能解决。

实在不行就上终极方案 - 在mounted里手动绑事件:this.$refs.myButton.$el.addEventListener('click', this.handleClick),虽然丑但保证能用。
点赞 1
2026-03-08 15:03
小恒硕
小恒硕 Lv1
你用的是 Vue 2 + iView 吧?iView 的 Button 是组件,@click 要写成 @click.native,改成 就行了
点赞 2
2026-02-24 02:07