自定义事件

事件名

不同于组件和prop,事件名不存在任何自动化的大小写转换。而是触发的事件

名需要完全匹配监听这个事件所用的名称。如果触发一个驼峰式(camelCase)的名字的事件:

this.$emit('myEvent')

则监听这个名字的 kebab-case 版本是不会有任何效果的:

<!-- 没有效果 -->

<my-component v-on:my-event="doSomething"></my-component>

所以事件名始终使用 kebab-case的事件名。

自定义组件的v-model

一个组件上的v-model 默认会用名为value的prop和名为input的事件,

但是单选框,复选框的输入空间可能将value 特性用于不同的目的。

model 选项避免这样的冲突:

model: { prop: 'checked', event: 'change' },

props: { checked: Boolean },

template: ` <input type="checkbox" v-bind:checked="checked" v-on:change="$emit('change', $event.target.checked)" > `

使用:

<base-checkbox v-model="lovingVue"></base-checkbox>

这里的 lovingVue 的值将会传入这个名为 checked 的 prop。

同时当 <base-checkbox> 触发一个 change 事件并附带一个新的值的时候

这个 lovingVue 的属性将会被更新。

 

注意你仍然需要在组件的 props 选项里声明 checked 这个 prop。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值