首页 > 其他 > 详细

vue.事件修饰符的事件控制,v-model数据双向绑定

时间:2020-09-29 08:48:08      阅读:37      评论:0      收藏:0      [点我收藏+]

 

事件默认冒泡:

当点击按钮,先触发点击按钮事件,再向上层冒泡

<body>
	<div id="app">
		<div class="inner" @click=‘divhandle‘>
		<input type="button" value="戳我" @click=‘btnhandle‘>
		</div>
	</div>
	<script >
		var vm = new Vue({
			el:‘#app‘,
			data:{
				
			},
			methods:{
				divhandle(){
					console.log(‘触发点击inner事件‘);
				},
				btnhandle(){
					console.log(‘触发点击btn事件‘);
				}
			}
		})
	</script>
</body>

  

技术分享图片

事件修饰符

  • .stop阻止冒泡
    <div class="inner" @click=‘divhandle‘>
    		<input type="button" value="戳我" @click.stop=‘btnhandle‘>
    		</div>
    

      

技术分享图片

 

 

 

  • .prevent阻止默认事件

<div id="app">
		<!-- <div class="inner" @click=‘divhandle‘>
		<input type="button" value="戳我" @click.stop=‘btnhandle‘>
		</div> -->
		<a href="http://www.baidu.com" @click.prevent=‘linkclick‘>百度</a>
	</div>
	<script >
		var vm = new Vue({
			el:‘#app‘,
			data:{
				
			},
			methods:{
				divhandle(){
					console.log(‘触发点击inner事件‘);
				},
				btnhandle(){
					console.log(‘触发点击btn事件‘);
				},
				linkclick(){
					console.log(‘触发链接点击事件‘);
				},
			}
		})
	</script>

  

 阻止a标签的默认跳转行为

  • .capture 添加事件侦听器使用事件捕获模式
<div class="inner" @click.capture=‘divhandle‘>
		<input type="button" value="戳我" @click.stop=‘btnhandle‘>
		</div>
//事件从外到里

  

技术分享图片

 

 

 

  • .self只当事件在元素本身(比如本身子元素)触发时触发回调
<div class="inner" @click.self=‘divhandle‘>
		<input type="button" value="戳我" @click.stop=‘btnhandle‘>
		</div>
//只有点击inner块自身才触发divhandle事件,点击button时不触发divhandle事件

  

技术分享图片

 

 

 

  • .once事件只触发一次
<a href="http://www.baidu.com" @click.prevent.once=‘linkclick‘>百度</a>
//只触发一次事件处理函数,包括prevent事件,click.once.prevent也一样

  .stop和.self

两个都有阻止冒泡的效果,但是stop阻止所有冒泡,self只阻止当前元素冒泡,不影响其它冒泡

例如,outer-inner-button三层,在button @click.stop,只发生button事件,阻止冒泡,不发生outer,inner的click事件;

在inner @click.self,点击button,只发生button和outer事件。

v-modle和双向数据绑定

<div id="app">
		<h4>{{msg}}</h4>
		<input type="text" v-bind:value="msg">
	</div>
	<script >
		var vm = new Vue({
			el:‘#app‘,
			data:{
				msg:‘敲代码啦‘
			},
			methods:{
				
			}
		})
	</script>

  v-bind只能实现数据单向绑定,从M绑定到V,无法实现双向绑定

技术分享图片

<div id="app">
		<h4>{{msg}}</h4>
		<input type="text" style=‘width: 100%;‘ v-model="msg">
</div>
	<script >
		var vm = new Vue({
			el:‘#app‘,
			data:{
				msg:‘敲代码啦‘
			},
			methods:{
				
			}
		})
	</script>

  使用v-model可以实现表单元素和model中数据的双向绑定

注意:v-model只能运用在表单元素中

input(radio,text,address,email...

select

checkbox

textarea

 

技术分享图片

 

vue.事件修饰符的事件控制,v-model数据双向绑定

原文:https://www.cnblogs.com/xuziying/p/13747695.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!