vue学习-05-方法methods

methods

vue的options中的其中一个

使用v-on:xx在标签中绑定事件:v-on-xx可以缩写为@xx

<script>
		var app = new Vue({
			el:'#app',
			data:{
				param: '参数'
			},
			methods: {
				btn1Click() {
					console.log("btn1点击")
				},
				btn2Click(param) {
					console.log(param)
				},
				btn3Click(param) {
					console.log(param)
				},
				btn4Click(param ,event) {
					console.log(param,event)
				}
			}
		});
	</script>
<div id="app">
			<!-- 方法没有参数()可以省略 -->
			<button @click="btn1Click">btn1</button>
			<!-- 方法有一个参数但省略了(),会将event对象传入 -->
			<button @click="btn2Click">btn2</button>
			<!-- 方法有一个参数正常传入参数 -->
			<button @click="btn3Click(param)">btn3</button>
			<!-- 多个参数传入event对象:使用$envent -->
			<button @click="btn4Click(param,$event)">btn4</button>
		</div>

如果在一个方法中有一个参数,在调用时没有传参,默认会将event对象传过来。挥着显示的在标签使用函数通过$event作为参数传递

<button @click="btn1Click">btn1</button>
<button @click="btn1Click($event)">btn1</button>
methods: {
				btn1Click(e) {
					console.log(e)
				}
			}

方法修饰符

.stop

<div @click="divClick" style="border: #00FFFF solid;">
				div
				stop修饰阻止向上冒泡
				<button @click.stop="btnClick">按钮</button>
			</div>

结果:点击button不会向上传递执行div标签中的click方法

.capture

<!-- 即内部元素触发的事件先在此处理,然后才交由内部元素进行处理 -->
			<div v-on:click.capture="out">
				外层div,先执行外层的监听事件
				<button @click="btnClick">内层</button>
			</div>

与.stop区别:外层使用.capture修饰的方法会先执行,然后才交由内部元素

.prevent

<form action="" method="post">
	<!-- 提交事件不再重载页面,取消默认的提交 -->
	<input type="submit" @click.prevent="submit" value="submit提交"/>
</form>

这样就不会默认执行表单的提交到action

.self

<!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
			<!-- 即事件不是从内部元素触发的 -->
			<div v-on:click.self="out">
				外层div本身才能触发,内层元素不能
				<button @click="btnClick">内层</button>
			</div>

只有点击div才会执行out方法,点击button不会触发out

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值