Vue 给组件绑定原生事件

给一个组件绑定原生事件,如下方法是错误的!

	<div id="root">
		<child @click="handleClick"></child>
	</div>
	<script>
		Vue.component("child",{
			template: "<div>child</div>"
		})
		var vm = new Vue({
			el: "#root",
			methods: {
				handleClick: function(){
					alert("hello");
				}
			}
		})
	</script>

得在组件中进行绑定,下面就是正确的绑定方法,是原生事件。

	<div id="root">
		<child></child>
	</div>
	<script>
		Vue.component("child",{
			template: "<div @click='handleClick'>child</div>",
			methods: {
				handleClick: function(){
					alert("hello");
				}
			}
		})
		var vm = new Vue({
			el: "#root"
		})
	</script>

以上。

child 标签中只能绑定自定义事件,而子组件中 div 中绑定的click 才是原生事件。

自定义事件,即由子组件emit 出来,父组件来监听的。如下。

	<div id="root">
		<child @inc="handleinc"></child>
	</div>
	<script>
		Vue.component("child",{
			template: "<div @click='handleClick'>child</div>",
			methods: {
				handleClick: function(){
					alert("hello");
					this.$emit("inc")
				}
			}
		})
		var vm = new Vue({
			el: "#root",
			methods: {
				handleinc: function(){
					alert("inc");
				}
			}
		})
	</script>

 

但是,父组件也可以直接绑定原生事件!不通过子组件的传递的方法!如下。

	<div id="root">
		<!-- <child @inc="handleinc"></child> -->
		<!-- 组件绑定原生事件 -->
		<child @click.native="handleinc"></child>
	</div>
	<script>
		Vue.component("child",{
			template: "<div>Child</div>"
			// template: "<div @click='handleClick'>child</div>",
			// methods: {
			// 	handleClick: function(){
			// 		alert("hello");
			// 		this.$emit("inc")
			// 	}
			// }
		})
		var vm = new Vue({
			el: "#root",
			methods: {
				handleinc: function(){
					alert("inc");
				}
			}
		})
	</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值