vue中sync的使用原来这么简单
sync的使用场景
有些时候子组件需要修改父组件传递过来的prop,
要去改变父组件的状态的时候就需要使用aync
看见这里有些同学可能会问??
不是说不可以修改父组件传递到子组件的值吗?
为啥要修改了呢??难道不会报错吗警告吗?
正常情况下,确实不可以去修改父组件传递给子组件中的值!
你修改后会把警告.【如下图】
但是有些时候我们又需要去修改父组件传递给子组件中的值
我们可以这样来做?

sync修饰符的功能
sync修饰符可以双向绑定父子组件中的数据
场景的使用
我们下面来做一个这样的案例
点击父组件的按钮,隐藏子组件
点击子组件的按钮,也将子组件隐藏
<test-com :ishow="flag"></test-com>
我们将控制变量flag绑定在组件上
案例
父组件
<template>
<div>
请问
<el-button @click="fatherHander">切换-父按钮</el-button>
<test-com :ishow.sync="flag"></test-com>
</div>
</template>
<script>
import testcom from "../components/test-com.vue"
export default {
data(){
return{
flag:true
}
},
components:{
'test-com':testcom
},
methods:{
fatherHander(){
this.flag=!this.flag
}
},
}
</script>
子组件
<template>
<div v-if="ishow" class="demo">
<h2>我是子组件</h2>
<h3>我是子组件中的信息</h3>
<h3>我是子组件中的信息</h3>
<el-button @click="sonHander">切换-子组件按钮</el-button>
</div>
</template>
<script>
export default {
props:{
ishow:{
type:Boolean
}
},
methods:{
sonHander(){
// 注意单词不要写错了,update是跟家规定的,不能写成其他值。
// ishow表示你跟新哪一个值,
// 将ishow的是跟新为false
this.$emit('update:ishow',false)
}
}
}
</script>

为啥这样可以修改父组件中的值
我们的子组件中有这样一行代码
this.$emit('update:ishow',false)
它可以去跟新父组件中的ishow,将它的值更改为false
有的同学会说:我不使用sync可以更改吗?可以的
这样来处理,子组件不改变代码,父组件改成这样
<template>
<div>
请问
<el-button @click="fatherHander">切换-父按钮</el-button>
<!-- 缩写的版本 -->
<!-- <test-com :ishow.sync="flag"></test-com> -->
<!-- 没有被缩写的 -->
<!-- value 子组件传递过来的参数 -->
<!-- <test-com :ishow="flag" @update:ishow="value=>flag=value"></test-com> -->
<!-- 与上面的等价哈 -->
<test-com :ishow="flag" @update:ishow="function(value){ flag=value }"></test-com>
<!-- -->
</div>
</template>
<script>
import testcom from "../components/test-com.vue"
export default {
data(){
return{
flag:true
}
},
components:{
'test-com':testcom
},
methods:{
fatherHander(){
this.flag=!this.flag
}
},
}
</script>
尾声
其实上面的没有被缩写的方法就是sync的语法糖
我们使用了sync就是帮我写了没有压缩的那几句代码
@update:ishow="value=>flag=value"或者
@update:ishow="function(value){ flag=value }"
看到这里聪明的小伙伴你一定是懂了sync了吧
最后逼逼一句,sync这个语法糖只有在2.3.0这个版本以及上才会有这个方法
要是不懂的话揍我一顿
(开玩笑的,如果你觉得我写的不错的话,点个赞,或者给我打赏一下)
已经三个月没有吃辣条了
vue中sync的使用原来这么简单的更多相关文章
- Vue中.sync修饰符
Vue 中 sync的作用 <FatherComponent :a.sync = 'b'><FatherComponent /> 子组件中emit('update:a',... ...
- vue中引入mintui、vux重构简单的APP项目
最近在学习vue时也了解到一些常用的UI组件,有用于PC的和用于移动端的.用于PC的有:Element(饿了么).iView等:用于移动端APP的有Vux.Mint UI(饿了么).Vant(有赞团队 ...
- vue中sync,v-model----双向数据绑定
需求:父子组件同步数据 实现方式:sync或者v-model 一.sync 官网:https://cn.vuejs.org/v2/guide/components-custom-events.html ...
- vue中.sync修饰符,实现子组件实时更新父组件的值
vue 修饰符sync的功能是:当一个子组件改变了一个 prop 的值时,这个变化也会同步到父组件中所绑定. 不过它有一个前身,先来看看.sync出现之前是如何实现的 父组件中(传递给子组件一个值:p ...
- vue中 computed和watch的一些简单理解(区别)
今天看到一个问题,就是vue的computed和watch要在哪些场景下使用,其实也就是在问他们的区别.computed也就是计算属性,它可以帮助我们将在模板中的一些稍微复杂的逻辑计算放回到js代码中 ...
- vue中.sync 修饰符
一直以来,都不太明白.sync的用法,归根结底原因在于,没有仔细阅读“.sync修饰符”. 正好,最近在拿一个项目练手,然后使用了elment-ui,然后在用到dialog的时候,属性visible是 ...
- VUE中关于表单提交的简单实现
main.js import Vue from "../vue.js"; import App from "./App.js"; //启动 new Vue({ ...
- vue 中的 .sync 修饰符 与 this.$emit('update:key', value)
vue 中 .sync 修饰符,是 2.3.0+ 版本新增的功能 在有些情况下,我们可能需要对一个 prop 进行"双向绑定".不幸的是,真正的双向绑定会带来维护上的问题,因为子组 ...
- Vue 中使用 extent 开发loading等全局 组件
Vue 中使用 extend 开发组件 简介:再开发过程中那面会遇到自定义 loading alert 等全局组件,这里我们可以使用 vue 中的extend 来帮助我们完成 一个简单extend例子 ...
- 【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据
前言: 之前写过一篇文章<在不同场景下Vue组件间的数据交流>,但现在来看,其中关于“父子组件通信”的介绍仍有诸多缺漏或者不当之处, 正好这几天学习了关于用sync修饰符做父子组件数据双向 ...
随机推荐
- openGauss内核:简单查询的执行
摘要:本文主要分析简单查询语句在业务处理线程Postgres上的执行流程,并介绍如何利用gdb梳理代码逻辑. 本文分享自华为云社区<openGauss内核分析(二):简单查询的执行>,作者 ...
- 【Vue】大总结
目录 vue大回顾 模板语法处理xss攻击 Vue单页面组件 ts泛型 sass\less\css的区别 ...toRef() defineEmits 练习 根据分数显示颜色 vue大回顾 1 前端发 ...
- HDU - 2897 邂逅明下 (简单博弈)
题目链接: https://vjudge.net/problem/HDU-2897 题目大意: 就是现在一堆石子有n颗, 每次只能拿走p~q颗, 当剩余少于p颗的时候必须一次拿完 拿走最后一颗的人败 ...
- OpenSCA用开源的方式做开源风险治理:Why? What? How?
随着容器.微服务等新技术的快速迭代,开源软件已成为业界主流形态,开源和云原生时代的到来导致软件供应链越来越趋于复杂化和多样化,网络攻击者开始采用软件供应链攻击作为击破关键基础设施的的重要突破口,从而导 ...
- iOS Class Guard github用法、工作原理和安装详解及使用经验总结
iOS Class Guard github用法.工作原理和安装详解及使用经验总结 iOS Class Guard是一个用于OC类.协议.属性和方法名混淆的命令行工具.它是class-dump的扩展 ...
- k8s探针详解
一.探针类型 Kubernetes(k8s)中的探针是一种健康检查机制,用于监测Pod内容器的运行状况.主要包括以下三种类型的探针: 1.存活探针(Liveness Probe) 2.就绪探针(Rea ...
- 嵌入式软件工程师笔试面试指南-ARM体系与架构
哈喽,大家好.我终于回来了!19号刚提交完大论文,就被抓去出差了,折腾了整整一周,26号晚上,才回到学校.鸽了好久都没更新干货了.今天更新一篇关于Arm的笔试面试题目,文章内容已同步更新在github ...
- P2241
这么多年不写代码,竟然忘了longlong这茬,我半天没想明白错在哪里,过了好久才反应过来.浪费不少时间,真的得记住longlong 啊.... Code #include <iostream& ...
- 2023是AI爆发的元年,程序员赚钱的机会来了,附49个机会!
以下是程序员利用AI做代码生成的赚钱思路.方案,共49条,按照不同分类列出: 基于自然语言生成的机会: 1. 开发基于AI的自动生成代码软件,应用于网站开发.移动应用开发.家庭自动化.人工智能等各个领 ...
- linux环境C语言实现:h264与pcm封装成mp4视频格式
前言 H.264是压缩过的数据,PCM是原始数据,MP4是一种视频封装格式.实际H.264与PCM不能直接合成MP4格式,因为音频格式不对.这里需要中间对音频做一次压缩处理.基本流程为:将PCM音频数 ...