Vue 组件中的.native原生事件(@click.native)
在开发时不知道大家遇没遇到过这样一种情况,在 vue
组件上绑定 click
事件竟然不生效!后来通过查阅 Vue2.0官方文档中的关于父子组件通讯原则得知,父组件通过 prop
传递数据给子组件,子组件触发事件给父组件,但父组件子组件上监想在听自己的click
的话,需要加上 native
修饰符!换句话说就是给 vue
组件绑定事件时候,必须加上native
,不然不会生效。加上native
就等同于在子组件内部处理 click
事件 然后向外发送 click
事件 $emit("click".fn)
下面我们以 路由跳转到首页的同时刷新页面为例:
<router-link to="/home" @click.native="handleClick">首页</router-link>
1
export default {
methods:{
handleClick:function(){
//router是路由实例,例如:var router = new Router({})
//router.go(n)是路由的一个方法,意思是在history记录中前进或者后退多少步,0就表示还是当前,类似 window.history.go(n)
this.$router.go(0);
}
}
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
注意
@click.native
事件后面要添加 .native
,不然添加的事件不起作用,具体原因应该是 router-link
为了阻止 a
标签的默认跳转事件。
上次更新: 2024/01/30, 00:35:17
- 02
- Node与GLIBC_2.27不兼容解决方案08-19
- 03
- Git清空本地文件跟踪缓存08-13