Vue 温故而知新 props如何双向属性绑定

Posted cylee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue 温故而知新 props如何双向属性绑定相关的知识,希望对你有一定的参考价值。

传送门:https://vuejs.org/v2/guide/components-custom-events.html#sync-Modifier

https://segmentfault.com/q/1010000012055834/a-1020000012055960

 

1、最单纯的做法:事件回调

// 父组件
<msgbox :value=‘value‘ @shift="fuck"></msgbox>

fuck (data) {
  this.value = fuck
}

// 子组件
<button @click=‘go‘></button>

go () {
   this.$emit(‘shift‘, ‘你要更新的值‘);
}

其实父组件如果只是赋值的话,可以写的更单纯一点。可以省略函数的定义和使用。(强烈推荐)

// 父组件
<msgbox :value=‘value‘ @shift="value = $event"></msgbox>

// 子组件
<button @click=‘go‘></button>
go () {
   this.$emit(‘shift‘, ‘你要更新的值‘);
}

 

2、官方推荐的做法: @update 

同1,我是看不出区别,如果是我,我建议使用1,反而可读性更强。

// 父组件
<msgbox :fuck=‘value‘ @update:fuck="fuck = $event"></msgbox>

// 子组件
<button @click=‘go‘></button>
go () {
    this.$emit(‘update:value‘, ‘你要修改的值‘)
}

 

3、我推荐的做法:v-bind.sync

 

// 父组件,可以省略 @update 或者 @event
<msgbox :value.sync=‘value‘></msgbox>

// 子组件
<button @click=‘go‘></button>
go () {
    this.$emit(‘update:value‘, ‘你要修改的值‘)
}

 



以上是关于Vue 温故而知新 props如何双向属性绑定的主要内容,如果未能解决你的问题,请参考以下文章

VUE双向绑定原理

如何在Vue2中实现组件props双向绑定

vue 双向绑定的基本原理

vue 双向绑定的基本原理

前端面试被问到,vue实现数据双向绑定,原理是什么

理解VUE2双向数据绑定原理和实现