vue3基础 —— 子传父
须知:vue里子组件无法改变父组件的值
思路:
1. 父组件定义数据 —— const data = ref(false)
2. 把值传递给子组件 —— :sendData = "data"
3. 子组件接收数据,使用、修改完成后 —— props: ["sendData"] —— const a = props.sendData —— a = true
4. 触发父组件事件,传值 —— emit("emitEffect", { emit: a })
5. 被触发的父组件,接收值,并更新自己最开始定义的数据 —— @emitEffect = "changeData" —— const changeData = (value) => { data = value.a }
例子:
父组件:
<template><div class="index"><div class="index__nav"><Indexnav :changeNavFu=changeNavFu @changeNavfu="changeNav" /></div></div>
</template><script>
import { ref } from 'vue'
import Indexnav from './Indexnav.vue'export default {name: 'index',components: { Indexnav, Indextab },setup () {const changeNavFu = ref(false)const changeNav = (val) => {changeNavFu.value = val.dataconsole.log(val) // {data:false}}return { changeNavFu, changeNav }}
}
</script><style lang="scss" scoped>
.index{font-size: .13rem;overflow: hidden;width: 100%;height: 100vh;&__nav {width: 2rem;}
}
</style>
子组件:
<template><div class="Indexnav" :style="isCollapse?'width:.63rem':''"><div class="Indexnav__header" @click="changeNav"><div :class="isCollapse?'sider-toggler':'sider-toggler active'"></div></div></div>
</template><script>
import { ref } from 'vue'export default {name: 'Indexnav',components: { Location },props: ['changeNavFu'],setup (props, { emit }) { // 一定要记得把props和emit传入setup函数const isCollapse = ref(props.changeNavFu)const changeNav = () => {isCollapse.value = !isCollapse.valueemit('changeNavfu', { data: isCollapse.value })}return { isCollapse, changeNav }}
}
</script><style lang="scss" scoped>
@import '../../assets/fonts/iconfont.css';.Indexnav{position: absolute;width: 2rem;top: 0;left: 0;height: 100%;box-shadow: .01rem .02rem .1rem rgba(0,0,0,.5);border-right: 1px solid #f2f4f9;transition: all .1s linear;
}
</style>
vue3基础 —— 子传父相关推荐
- vue3.0 组件使用 引用 传值 父传子 子传父
vue3.0 组件使用 引用 传值 父传子 子传父 组件的创建 组件引入 在html中使用 组件传值 父传子 子接收参数 子传父 父接收参数 组件的创建 1.将所需功能封装在components目录下 ...
- Vue3/ Vue3 组件通讯 -- 子传父 方法流程 总结
一 .Vue3 组件通讯 -- 子传父 方法流程 1. 首先子组件通过 defineEmit 写入传递事件名 并 定义变量名 const 变量名one = defineEmit([' 传递事件名']) ...
- vue3组件通信的方式 父传子 props 和子传父 $emit 非父子组件的通信Provide和Inject 全局事件总线mitt库
vue3组件通信的方式 一.父传子 props 和子传父 $emit 1.父传子 props 在开发中最常见的就是父子组件之间通信,父组件往子组件通信使用的是props.子组件往父组件通信则使用的是 ...
- Vue3中的父传子和子传父如何实现
大家都知道Vue2中父传子是通过父组件绑定一个属性,子组件再用props进行接收,子传父是通过this.$emit那么Vue3中有什么不同呢?以下为您解答谜团 #Vue3的父传子 一.现在父组件调用子 ...
- 3.vue3.2的父传子defineProps,子传父emits以及ref
1.父传子 <template><div class="container"><!-- 传递数据 这里传了一个string 和 一个list --&g ...
- 【vue3.0学习】父传子 子传父
父传子 <template><div id="app"><h1>父组件</h1><p>{{ money }}</p ...
- Vue3.2——父传子、子传父
## 父传子 父组件: <template><div class="home"><test-com :info="msg" tim ...
- VUE3 子传父 父传子 双向传递
组件参数传递 父传子 father.vue <template > <!-- 父传子实现 2.向vue页面中的子组件传递该属性 :传给子组件的名字(自定义)="对应定义在父 ...
- vue3.0组件之父传子,子传父,父传孙
父组件<template> <!-- <div>{{name}}</div> {{computedsx}} {{sum}}<button @click= ...
最新文章
- JavaScript 封装插件学习笔记(一)
- 2022-01-24
- Leaflet中使用layerGroup图层组实现图层切换
- vs2010功能使用体验篇
- netty系列之:netty架构概述
- SAP 中如何寻找增强
- 未来是属于 ARM 为代表的精简指令集还是 x86 为代表的复杂指令集?
- 冷藏温度范围_食品冷藏冷冻温度要求与管理规范
- python大列表分割成小列表_Python有什么方法将列表分割成大小均匀的块?求使用实例...
- java Math类与Number类
- 为什么说java语言是支持跨平台的
- 8月23号,来上海整整一年
- 中国便利店行业战略发展及投资盈利研究报告2022年版
- 颜色空间转换-从RGB到LCH-亮度饱和度色度
- 基于指纹识别技术的身份认证系统的设计与实现
- Java POI导出(图片,文字,表格)word文档
- dy\ks直播间人气挂粉
- 调研分析-全球与中国冲刺计时系统市场现状及未来发展趋势
- edge浏览器怎么设置activex_微软Edge浏览器将不再支持ActiveX等老技术
- 开发餐厅里扫餐桌码进行点餐下单
热门文章
- linux gtx驱动程序,Nvidia 418.43 发布,支持GeForce GTX 1660 Ti的Linux图形驱动程序
- Windos系统使用webdav协议将阿里云盘挂载在本地,并实现Notability等支持webdav协议软件的自动备份
- Carrey的第一篇博客
- QT下载和安装 指南教程
- 小伙子开超市,抓住“人性贪婪”,二个步骤过后,生意瞬间火爆!
- 服务器微信发送图片困难是什么原因导致的,微信接受的图片不清楚的原因是什么?怎么发清楚?...
- 绘画新手怎么把人物骨骼画好
- C# 程序集(Assembly)
- H5页面微信自动登录,和微信页面自定义分享样式
- Axmath:一款Word公式编辑神器