问题:使用element-ui下拉菜单组件Dropdown时绑定点击事件,事件不生效。
解决:在click后添加native修饰符,使用@click.native=“”
不显示效果代码:
<el-dropdown>
<span class="el-dropdown-link">
{{ nickname }}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click="goToUserCenter">个人中心</el-dropdown-item>
<el-dropdown-item @click="signOut">登出</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
生效代码:
<el-dropdown>
<span class="el-dropdown-link">
{{ nickname }}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="goToUserCenter">个人中心</el-dropdown-item>
<el-dropdown-item @click.native="signOut">登出</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
详解:
@click 常见于其用在Vue中的事件绑定,而@实际上是 v-on 的简写,而 v-on 则是对 vue 的事件体系封装之后的 API接口。
native修饰符用于处理DOM原生事件,由于组件 DropDown并没有封装点击事件,因此需要添加原生的点击事件,因此使用@click.native。