VUE修饰符知识点补充

18 篇文章 0 订阅
15 篇文章 1 订阅
本文主要补充Vue中修饰符的知识点,包括表单修饰符(如.lazy, .number, .trim)、事件修饰符(如.stop, .prevent, .once, .left, .right, .middle)以及键值修饰符。同时介绍了v-bind修饰符,特别是.prop和.camel的用法,和.sync修饰符在实现双向数据绑定中的作用。" 113053661,10536925,深入理解:创建文件时的操作系统原理,"['操作系统', '文件系统', '编程基础知识', '数据存储']
摘要由CSDN通过智能技术生成

VUE知识点补充

这篇博客是为了补充上篇VUE的中篇的知识点

修饰符
在VUE中我们认识了一些指令可以用简写的形式来代替V-指令,我们再认识下缩写中的缩写修饰符

  • 表单修饰符
  • 事件修饰符
  • 鼠标按键修饰符
  • 键值修饰符
  • v-bind修饰符

1.表单修饰符

  • .lazy - 取代 input 监听 change 事件
  • .number - 输入字符串转为有效的数字
  • .trim - 输入首尾空格过滤

.lazy

//当输入完成离开光标后才执行相当于在onchange事件触发更新。
<div>
   <input type="text" v-model.lazy="value">
   <p>{{value}}</p>
</div>

.number

//输入字符串转为有效的数字
<div>
   <input type="text" v-model.number="value">
   <p>{{value}}</p>//输入值将转换为number类型
</div>

.trim

//输入首尾空格过滤
<div>
   <input type="text" v-model.trim="value">
   <p>{{value}}</p>//输入值如果有空格会自动将空格删去
</div>

2. 事件修饰符

  • .stop - 调用 event.stopPropagation()。
  • .prevent - 调用 event.preventDefault()。
  • .{keyCode | keyAlias} - 只当事件是从特定键触发时才触发回调。
  • .once - 只触发一次回调。
  • .left - (2.2.0) 只当点击鼠标左键时触发。
  • .right - (2.2.0) 只当点击鼠标右键时触发。
  • .middle - (2.2.0) 只当点击鼠标中键时触发。

.stop

//由于事件冒泡的机制,我们给元素绑定点击事件的时候,也会触发父级的点击事件。
<div @click="shout(2)">
  <button @click="shout(1)">ok</button>
</div>

//js
shout(e){
  console.log(e)
}
//一键阻止事件冒泡,简直方便得不行。相当于调用了event.stopPropagation()方法。
<div @click="shout(2)">
  <button @click.stop="shout(1)">ok</button>
</div>

.prevent

//用于阻止事件的默认行为,例如,当点击提交按钮时阻止对表单的提交。相当于调用了event.preventDefault()方法。
<form v-on:submit.prevent="onSubmit"></form>

.once

//只能用一次,绑定了事件以后只能触发一次,第二次就不会触发。
//键盘按坏都只能shout一次
<button @click.once="shout(1)">ok</button>

3.表单修饰符
.left ,.right ,.middle

//分别绑定鼠标的左,右,中
<button @click.left ="shout(1)">ok</button>//左键触发
<button @click.right ="shout(1)">ok</button>//右键键触发
<button @click.middle="shout(1)">ok</button>//中键键触发

4.键值修饰符
.left ,.right ,.middle

//键盘触发
<input type="text" @keyup.keyCode="shout(4)">
//或,直接键码
<input type="text" @keyup.13="shout(4)">

5.v-bind修饰符

  • .prop - 作为一个 DOM property 绑定而不是作为 attribute 绑定。(差别在哪里?)
  • .camel - (2.1.0+) 将 kebab-case attribute 名转换为 camelCase。(从 2.1.0 开始支持)
  • .sync (2.3.0+) 语法糖,会扩展成一个更新父组件绑定值的 v-on 侦听器。

.sync
我们可能需要对一个 prop 进行“双向绑定”。不幸的是,真正的双向绑定会带来维护上的问题,因为子组件可以修改父组件,且在父组件和子组件都没有明显的改动来源。我们通常的做法是

//父亲组件
<comp :myMessage="bar" @update:myMessage="func"></comp>
//js
func(e){
 this.bar = e;
}
//子组件js
func2(){
  this.$emit('update:myMessage',params);
}

现在这个.sync修饰符就是简化了上面的步骤

//父组件
<comp :myMessage.sync="bar"></comp> 
//子组件
this.$emit('update:myMessage',params);

这是关于VUE中对常用的修饰符中的补充,希望大家能看懂把

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值