[Vue].sync 修饰符

可实现对prop 进行“双向绑定”。

用法:

一、同时设置1个 prop

1.以 update:my-prop-name 的模式触发事件,如对于title属性:

this.$emit(‘update:title‘, newTitle)

2.然后父组件可以监听那个事件并根据需要更新一个本地的数据属性:

<text-document
  v-bind:title="doc.title"
  v-on:update:title="doc.title = $event"
></text-document>

为了方便起见,我们为这种模式提供一个缩写,即 .sync 修饰符:

<text-document v-bind:title.sync="doc.title"></text-document>

二、同时设置多个 prop

当我们用一个对象同时设置多个 prop 的时候,也可以将这个 .sync 修饰符和 v-bind 配合使用:

<text-document v-bind.sync="doc"></text-document>

这样会把 doc 对象中的每一个属性 (如 title) 都作为一个独立的 prop 传进去,然后各自添加用于更新的 v-on 监听器。

原文地址:https://www.cnblogs.com/vickylinj/p/9573686.html

时间: 2024-10-08 04:41:27

[Vue].sync 修饰符的相关文章

vue .sync修饰符的使用

vue的官网介绍非常不错,先通读一遍. 2.3.0+ 新增 在有些情况下,我们可能需要对一个 prop 进行"双向绑定".不幸的是,真正的双向绑定会带来维护上的问题,因为子组件可以修改父组件,且在父组件和子组件都没有明显的改动来源. 这也是为什么我们推荐以 update:my-prop-name 的模式触发事件取而代之.举个例子,在一个包含 title prop 的假设的组件中,我们可以用以下方法表达对其赋新值的意图: this.$emit('update:title', newTit

vue 中 v-model 和 .sync修饰符

v-model   1 <input v-model="searchText"> 2 3 等价于 4 <input 5 v-bind:value="searchText" 6 v-on:input="searchText = $event.target.value" 7 > 8 当用在组件上时,v-model 则会这样: 9 <custom-input 10 v-bind:value="searchText

Vue的修饰符 .sync

.sync 修饰符以前存在于 vue1.0版本里,在2.0版本中移除了 .sync  但是在2.0发布之后的实际应用中,我们发现 .sync 还是有其适用之处的,比如在开发可复用组件库时.我们需要做的只是让子组件改变父组件状态的代码更容易被区分.从2.3.0起,Vue重新引入了 .sync修饰符,但是这次它只是作为一个编译时的语法糖存在.它会被扩展为一个自动更新父组件属性的 v-on 监听器. <com :foo.sync="bar"></com> 会被扩展为:

vue组件双向绑定.sync修饰符的一个坑

我们知道组件是单项的,但是有时候需要双向,这时候我们可以使用.sync修饰符,但今天遇到一个坑,一直不成功,花了半小时试出来的.... 在编程的时候我们很习惯冒号后面跟着空格.而.sync双向绑定需要子组件显性触发 this.$emit('update:foo', newValue) 这里的updata:foo可以说是一个名字,不能加空格,不能加空格,不能加空格!!!这就是坑,由于编程习惯,也许会有人加空格,我也是,所以写出来当作一个笔记. 根据文档 <comp :foo.sync="ba

Vue—事件修饰符

Vue事件修饰符 Vue.js 为 v-on 提供了事件修饰符来处理 DOM 事件细节,如:event.preventDefault() 或 event.stopPropagation(). Vue.js通过由点 (.) 表示的指令后缀来调用修饰符. .stop.prevent.capture.self.once <!-- 阻止单击事件冒泡 --> <a v-on:click.stop="doThis"></a> <!-- 提交事件不再重载页面

Vue 时间修饰符之使用$event和prevent修饰符操作表单

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <script src="vue.js"></script> <title id="title">{{title}}</title> </head> <body> <div id

【Vue】修饰符

一.事件修饰符 1..stop: 等同于event.stopPropagation() 12 <a v-on:click.stop="doThis"></a> 2..prevent:等同于event.preventDefault() 12 <!-- 提交事件不再重载页面 --><form v-on:submit.prevent="onSubmit"></form> 3..capture:使用事件捕获模式 1

vue之修饰符

事件修饰符 在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation()是非常常见的需求.尽管我们可以在 methods 中轻松实现这点,但更好的方式是:methods 只有纯粹的数据逻辑,而不是去处理 DOM 事件细节. 为了解决这个问题, Vue.js 为 v-on 提供了 事件修饰符.通过由点(.)表示的指令后缀来调用修饰符. .stop .prevent .capture .self .once <!-- 阻止单击事件冒泡 -->

[Vue] : 键盘修饰符

键盘修饰符以及自定义键盘修饰符 为文本框回车键绑定事件 <input type="text" class="form-control" v-model="name" @keyup.enter="add"> 自定义键盘修饰符 通过Vue.config.keyCodes.名称 = 按键值来自定义案件修饰符的别名: Vue.config.keyCodes.f2 = 113; 使用自定义的按键修饰符: <input