web前端面试官: 如何让你开发的组件支持 v-model,在往细了说一说

面试官: 如何让你开发的组件支持 v-model


v-model  的本质是语法糖。语法糖,简单来说就是『便捷写法』。[-点击这篇博客有说-](()

在大部分情况下, v-model="foo" 等价于 :value="foo" 加上 @input="foo = $event"

<el-input :value=“foo” @input=“foo = $event” />

没错,在大部分情况下如此。

但也有例外:

在编程思想上,这种帮助使用者『隐藏细节』的方式叫封装。

冷知识: 如果v-model绑定了相应式对象里不存在的值,vue会自动增加这个属性,并且是响应式的,

通俗总结:data中的user对象有name属性,没有age属性,但是v-model=“user.age”,user中就会增加一个相应式属性age

案例

// template

// script

export default {

data() {

return {

user: {

name: ‘活在风浪里’,

}

}

}

}

面试官: 如何让你开发的组件支持 v-model


组件使用v-model相当于在组件上添加:value @input事件,可以通过model属性自定义设置,与data、props同级

在定义 vue 组件时,你可以提供一个 model 属性,用来定义该组件以何种方式支持 v-model。

model 属性本身是有默认值的,如下:

// 默认的 model 属性

export default {

model: {

prop: ‘value’,

event: ‘input’

}

}

案例:

/*

子组件

*/

我几岁:{{ propsAge }}

<el-button @click=“age(1)”>加

<el-button @click=“age(-1)”>减

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值