表单修饰符和事件修饰符

本文详细介绍了Vue.js中v-model修饰符(如lazy用于延迟数据收集,number用于数值验证,trim去除首尾空格)以及事件修饰符(如.prevent阻止默认行为,.stop阻止冒泡,.once触发一次等)的使用示例和功能解释。
摘要由CSDN通过智能技术生成

表单修饰符和事件修饰符

表单修饰符

v-model.lazy

v-model.lazy 失去焦点后再收集数据

<div id="app">
        <textarea name="" id="" cols="30" rows="10" v-model.lazy="a"></textarea>
        {{a}}
        <textarea name="" id="" cols="30" rows="10" v-model="b"></textarea>
        {{b}}
    </div>

Vue.config.productionTip = false;
    var vm = new Vue({
        el: "#app",
        data() {
            return { a: "", b: "" }
        } 
    })

在这里插入图片描述

v-model.number

v-model.number 有效转换为数字 如 "1" 转为 1 数字

<div id="app">
	<input type="text" v-model.number="num">
    <input type="text" v-model="nums" value="">
    <button @click="func()">点击</button>
</div>

Vue.config.productionTip = false;
    var vm = new Vue({
        el: "#app",
        data() {
            return { num: "", nums: "" }
        },
        methods: {
            func() {
                console.log(typeof this.num);
                console.log(typeof this.nums);
            }
        }
    })

在这里插入图片描述

v-model.trim

v-model.trim 过滤首尾空格

<div id="app">
	<input type="text" v-model.trim="num">
</div>

Vue.config.productionTip = false;
    var vm = new Vue({
        el: "#app",
        data() {
            return { num: ""}
        }
    })

在这里插入图片描述

事件修饰符

.prevent

prevent 阻止默认事件 如移动端的下拉刷新事件 form的默认提交刷新事件 a链接刷新事件

<form action="" @submit.prevent></form>
<a href="http://baidu.com" @click.prevent></a>

.stop

stop 阻止冒泡事件

 <div @click="func2()" class="box1">
            1
            <p @click="func3()" class="box2">
                2
                <span @click.stop="func4()" class="box3">3</span>
            </p>
        </div>
Vue.config.productionTip = false;
    var vm = new Vue({
        el: "#app",
        data() {
            return {}
        },
        methods: {
            func2(){
            	console.log("div元素");
            },
            func3(){
            	console.log("p元素");
            },
            func4(){
            	console.log("span元素");
            },
        }
    })

在这里插入图片描述

拓展:阻止冒泡的几种方法

  1. addEventListnener设置为true
  2. .stop
  3. event.stopPropagation

.once

once 只触发一次

 <div @click.oncek="func1()" class="box1"> </div>
Vue.config.productionTip = false;
    var vm = new Vue({
        el: "#app",
        data() {
            return {}
        },
        methods: {
            func1(){
            	console.log("div元素,但只能触发一次");
           }
        }
    })

.capture

capture 打乱冒泡顺序,先触发带有此修饰符的元素,若有多个此修饰符,则由外向内触发 捕获效果

 <div @click="func2()" class="box1">
            1
            <p @click.capture="func3()" class="box2">
                2
                <span @click="func4()" class="box3">3</span>
            </p>
        </div>
Vue.config.productionTip = false;
    var vm = new Vue({
        el: "#app",
        data() {
            return {}
        },
        methods: {
            func2(){
            	console.log("div元素");
            },
            func3(){
            	console.log("p元素");
            },
            func4(){
            	console.log("span元素");
            },
        }
    })

在这里插入图片描述

.self

self 阻止自身事件触发,但不会阻止冒泡。再冒泡事件中,点击设置self下的子类,才不会触发self本身,但是点击self本身,会触发 间接有捕获效果

 <div @click="func2()" class="box1">
            1
            <p @click.self="func3()" class="box2">
                2
                <span @click="func4()" class="box3">3</span>
            </p>
        </div>
Vue.config.productionTip = false;
    var vm = new Vue({
        el: "#app",
        data() {
            return {}
        },
        methods: {
            func2(){
            	console.log("div元素");
            },
            func3(){
            	console.log("p元素");
            },
            func4(){
            	console.log("span元素");
            },
        }
    })

在这里插入图片描述


  • 失联

最后编辑时间 2024,03,11;17:08

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值