ggggxc学习笔记----Vue学习笔记III----事件、表单

四、事件机制

1.事件绑定:用 v-on 指令监听DOM 事件,并在触发时运行一些 JavaScript 代码。v-on 还可以接收一个需要调用的方法名称

例:

<button v-on:click="greet">Greet</button>
methods: { 
	greet: function (event) { 
	    if (event) { alert(event.target.tagName) } // `event` 是原生 DOM 事件 
   	} 
}

 

除了直接绑定到一个方法,也可以在内联 JavaScript 语句中调用方法,通过$event传递原生事件对象。

例:

<button v-on:click="say('hi',$event)">Say hi</button>
methods: { say: function (message,event) { alert(message) } }
//简写:<button @click="say('hi',$event)">Say hi</button>

 

2.事件修饰符:

在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求。Vue提供了更好的方式:事件处理函数只有纯粹的数据逻辑,而不是去处理 DOM 事件细节,通过事件修饰符来完成这些细节。

<form v-on:submit.prevent="onSubmit"></form>

(1)常见修饰符:

.stop            停止事件冒泡   

.prevent       阻止事件默认行为

.capture       在事件捕获阶段执行事件处理函数

.self              只当在 event.target 是当前元素自身时触发处理函数

.once            事件处理函数执行一次后解绑

.passive       滚动事件的默认行为 (即滚动行为) 将会立即触发 ,一般与scroll连用,能够提升移动端的性能

(2)按键修饰符 :一般与keyup事件类型配合使用

.enter、.tab、.delete、.esc、.space、.up、.down、.left、.right、.ctrl、.alt、.shift、.meta

(3)鼠标修饰符

.left、.right、.middle

五、表单输入绑定

1.介绍:用v-model指令在表单<input>、<textarea> 及 <select> 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。v-model 会忽略所有表单元素的 value、checked、selected attribute 的初始值而总是将 Vue 实例的数据作为数据来源。你应该通过 JavaScript 在组件的 data 选项中声明初始值。

(1)单行文本框

<input v-model="message" placeholder="edit me">

(2)多行文本框

<textarea v-model="message" placeholder="multiple lines"></textarea>

(3)复选按钮

<input type="checkbox" value="Jack" v-model="checkedNames">
<input type="checkbox" value="John" v-model="checkedNames">

(4)单选按钮

<input type="radio"  value="One" v-model="picked">
<input type="radio" value="Two" v-model="picked">

(5)下拉菜单

<select v-model="selected">
       <option disabled value="">请选择</option>
       <option>A</option>
       <option>B</option>
</select>

2.修饰符:可以增加表单绑定能力

(1)lazy:默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步。可以添加 lazy 修饰符,从而转为在 change 事件之后进行同步

<!-- 在“change”时而非“input”时更新 -->
<input v-model.lazy="msg">

(2)number:如果想自动将用户的输入值转为数值类型,可以给 v-model 添加 number 修饰符

<input v-model.number="age" type="number">

(3)trim:如果要自动过滤用户输入的首尾空白字符,可以给 v-model 添加 trim 修饰符

<input v-model.trim="msg">

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaoxiaochan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值