Vue2.3.0+使用.sync修饰符对prop进行双向绑定/子组件同步prop到父组件绑定的值
vue2.3.0+使用.sync修饰符对prop进行双向绑定
背景、概念:
在一些情况下,我们可能会需要对一个 prop 进行“双向绑定”。事实上,这正是 Vue 1.x 中的.sync
修饰符所提供的功能。当一个子组件改变了一个带 .sync
的 prop 的值时,这个变化也会同步到父组件中所绑定的值。这很方便,但也会导致问题,因为它破坏了单向数据流。由于子组件改变 prop 的代码和普通的状态改动代码毫无区别,当光看子组件的代码时,你完全不知道它何时悄悄地改变了父组件的状态。这在 debug 复杂结构的应用时会带来很高的维护成本。
上面所说的正是我们在 2.0 中移除 .sync
的理由。但是在 2.0 发布之后的实际应用中,我们发现.sync
还是有其适用之处,比如在开发可复用的组件库时。
我们需要做的只是让子组件改变父组件状态的代码更容易被区分。从 2.3.0 起我们重新引入了.sync
修饰符,但是这次它只是作为一个编译时的语法糖存在。
demo介绍:本demo的功用组件head.vue中,需要知道当前菜单是哪个,进而显示高亮,demo结合elementui
父组件,只需要留意红框部分
子组件header.vue,只需要留意红框部分:
其中el-menu为element-ui的菜单,点击菜单选项时会调用handleSelect函数,本人在handleSelect触发时改变prop中的active,
当子组件需要更新 active的值时,它需要显式地触发一个更新事件update:active
Vue2.3.0+使用.sync修饰符对prop进行双向绑定/子组件同步prop到父组件绑定的值相关推荐
- vue中.sync修饰符与自定义组件的v-model的使用
.sync修饰符 有时我们需要父组件向子组件传值,并且子组件要修改父组件中的值是,我们一般会这样写 //父组件 <template>//子组件修改值 父组件注册自定义事件 传过来的参数通过 ...
- 浅谈 Vue3 中的 v-model 和 sync 修饰符
很多同学对 Vue 的第一印象就是"响应式"."双向绑定"等特性,而 v-model 就是实现双向绑定的语法糖,用过 Vue 的小伙伴一定都非常熟悉.但是在 V ...
- .sync修饰符的原理和使用
.sync 修饰符的作用就是实现父子组件数据的双向绑定,与v-model类似 父组件内容: 子组件内容: 通过点击按钮改变父组件中的值 num和sum 开始时组建显示内容: 点击按钮后显示的内容: ...
- vue中 .sync 修饰符 个人理解
vue中.sync修饰符有什么用 .sync 修饰符 其实就是一个语法糖 vue中 :子组件不能修改props 外部数据 vue中: $emit 可以触发事件并传参 vue中: $event可以获取 ...
- angular移除事件绑定事件绑定_Vue.js子组件利用事件向父组件传输数据,以及sync修饰符和双向绑定...
在Vue.js的组件中,prop是"单向绑定"的,数据只能从父组件传输到子组件.Vue文档中的说了这样做的原因: 所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑 ...
- Vue v-model 指令详解以及sync修饰符的使用场景(结合父子组件通信案例)
参考Vue官方文档 一.需求如下: 二.代码如下 三.分步解析: 父组件给子组件传值: 子组件给父组件传值: 四.sync修饰符的使用 vue.js官方文档 如果已经使用了v-model双向绑定了一个 ...
- vue组件双向绑定.sync修饰符的一个坑
我们知道组件是单项的,但是有时候需要双向,这时候我们可以使用.sync修饰符,但今天遇到一个坑,一直不成功,花了半小时试出来的.... 在编程的时候我们很习惯冒号后面跟着空格.而.sync双向绑定需要 ...
- vue子组件通过.sync修饰符修改props属性
在vue子组件中,如果我们直接修改props中的属性,会报错: Avoid mutating a prop directly since the value will be overwritten w ...
- vue的sync修饰符
vue 中父子组件通信的时候, 我们可能会看到 .snyc 的代码, 它实质上是一个语法糖, 不使用它我们也有解决的方案, 使用它的话,可以使我们的代码更加简洁而已. 首先, 我们实现一个功能, 在父 ...
最新文章
- 激活函数sigmoid和激活函数softmax
- 先来先服务调度算法(C++实现)
- python as_Python with as的用法
- iview select 怎么清空_在使用iview时发现要先重置一下表单然后填写完后再重置可以清空Select多选框,否则清不掉,什么原因?...
- UIView的autoresizingMask属性
- 基于JAVA+SpringMVC+Mybatis+MYSQL的宠物商城
- 狮子鱼独立版_轮转八方飞智八爪鱼2游戏手柄 | 大家测557
- socket与TCP/UDP编程-转
- 2.Netty的粘包、拆包(一)
- [期刊科普]期刊划分和分区:北大核心、南大核心、SCI、万方维普知网
- 超市收银系统-Java Swing版
- 装机大师无法发现linux硬盘,进入pe系统找不到硬盘的解决办法
- 移动硬盘——显示盘符但打不开
- 施一公:如何做一名优秀的博士生
- 台式计算机输入设备,简述常用的输入设备和输出设备有哪些 – 手机爱问
- abcde依次进入一个队列_怎么区分栈和队列的进出顺序?
- 【知识兔】自学Excel之1:了解Excel 中的基本功能
- linux重启 envi服务,envi 4.3在ubuntu edgy下启动错误的解决
- Linux如何更改root用户密码
- Android手机直播系统开发介绍