Vue父组件调用子组件事件,父子组件交互

vue2

vue父组件向子组件传递数据 or 调用事件

父组件传递数据到子组件 props

传递:

<child-c :args="args"></child-c>

export default {data: {return() {args: {id: 1,name: 'achuan',}}}
}

接收:

props: {// 可选,并提供默认值title: {type: String,required: false,default: '默认标题'},// 对象或数组areg: {type: Object,default() {return {}}},// 默认可选,单类型index: Number,// 添加一些自定义校验userName: {type: String,// 在这里校验用户名必须至少3个字validator: v => v.length >= 3},// 默认可选,但允许多种类型uid: [ Number, String ]
}

父组件调用子组件方法:

调用事件

方法1:

<child-c ref="child" @click="onChildFn"></child-c>export default {components: {childC: childC}methods: {onChildFn() {this.$refs.child.callMethod()},},
}

方法2:

父组件:

this.$refs.child.$emit('childFn')

子组件:

export default {mounted() {this.$nextTick(function () {this.$on('childFn', function () {// ...})})},
}

子组件调用父组件方法:

子组件:

<li ref="child" @click="onParentFn"></li>
onParentFn() {this.$emit('onParentFn')
}

父组件:

<child-c ref="child" @onParentFn="parentFn"></child-c>
parentFn() {// ...
}

兄弟组件通信

bus


vue3

父组件获取子组件数据:

获取子组件数据

<UploadImg ref="uploadRedList"></UploadImg>
const uploadRedList = ref(null) // 通过 ref 绑定子组件
let mediaListTemp = uploadRedList.value.mediaList
let acceptTemp = uploadRedList.value.accept // images/videoreturn {uploadRedList,
}

父组件传递数据到子组件

传递:

<child-c :args="args"></child-c>

export default {data: {return() {args: {id: 1,name: 'achuan',}}}
}

接收:

props: {// 可选,并提供默认值title: {type: String,required: false,default: '默认标题'},// 对象或数组args: {type: Object,default() {return {}}},// 默认可选,单类型index: Number,// 添加一些自定义校验userName: {type: String,// 在这里校验用户名必须至少3个字validator: v => v.length >= 3},// 默认可选,但允许多种类型uid: [ Number, String ]
}setup (props) {// 该入参包含了我们定义的所有propsconsole.log(props);console.log(props);let { args } = toRefs(props)console.log(args.value)// orlet argsTemp = ref(props.args)
}

父组件调用子组件方法:

调用方法

const uploadRedList = ref(null) // 通过 ref 绑定子组件
uploadRedList.value.childFn()return {uploadRedList,
}

子组件调用父组件方法:

子组件:

<li ref="child" @click="onParentFn"></li>
onParentFn() {this.$emit('onParentFn')
}

父组件:

<child-c ref="child" @onParentFn="parentFn"></child-c>
parentFn() {// ...
}

兄弟组件通信

安装:

npm install --save mitt

bus.js文件

import mitt from 'mitt';
export default mitt();

发起:

setup () {// 调用打招呼事件,传入消息内容bus.emit('sayHi', '哈哈哈哈哈哈哈哈哈哈哈哈哈哈');
}

接收,销毁:

setup () {// 定义一个打招呼的方法const sayHi = (msg) => {console.log(msg);}// 启用监听bus.on('sayHi', sayHi);// 在组件卸载之前移除监听onBeforeUnmount( () => {bus.off('sayHi', sayHi);})
}

vue父组件、子组件,父子组件交互相关推荐

  1. 父子组建传值_浅谈Vue父子组件和非父子组件传值问题

    本文介绍了浅谈Vue父子组件和非父子组件传值问题,分享给大家,具体如下: 1.如何创建组件 1.新建一个组件,如:在goods文件夹下新建goodsList.vue goodsList组件 expor ...

  2. Vue.js组件-组件通信-非父子组件传值以及其他通信方式

    非父子组件传值 非父子组件指的是兄弟组件或完全无关的两个组件 兄弟组件 兄弟组件可以通过父组件进行数据中转,简单来讲,A是父组件,BC是两个兄弟组,那么我们可以先B传给A,再A传给C.示例如图: Ev ...

  3. vue2.0父子组件以及非父子组件如何通信

    1.父组件传递数据给子组件 父组件数据如何传递给子组件呢?可以通过props属性来实现 父组件: <parent><child :child-msg="msg"& ...

  4. react中类组件传值,函数组件传值:父子组件传值、非父子组件传值

    父子组件传值.非父子组件传值: 类组件传值 父子 组件传值 子 传 父: 子组件:事件的触发sendMsg=()=>{this.props.person();}父组件:<Child per ...

  5. vue父传子mounted问题

    vue父传子mounted问题 问题描述: 场景是父组件向子组件传递参数,子组件在父组件的dialog里面,子组件是在mounted的时候渲染父组件传递的参数,出现bug,子组件mounted只加载一 ...

  6. Vue 进阶组件实战应用 -- 父子组件传值的应用实例(子父组件传值的两种触发方式)

    基础的子组件和父组件通信已经搞定了,可以看此博客 父子组件传值基础应用 需求 现在需求是在一个父页面引用子组件,不只是要实现基本的父子组件传值.并且子组件给父组件传值的触发条件要在父页面触发. 目前小 ...

  7. 子组件调用父组件方法_vue父子组件通信以及非父子组件通信的方法

    组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.一般来说,组件可以有以下几种关系,父子关系.兄弟关系和隔代关系,简化点可以分为父子关系和 ...

  8. vue.js $refs和$emit 父子组件交互

    父调子 $refs (把父组件的数据传给子组件) <template><div id="app"><input type="button&q ...

  9. vue父与子组件,子与子组件间的方法调用和通信

    子与子之间通信的前提是有一个共同的父亲, 首先,在vue中,$+name是vue系统定义的实例属性或方法,vue的api上面写的有链接实例属性. $parent指的是当前组件的父实例.$refs指的是 ...

  10. Vue表单类的父子组件数据传递示例_vue.js_脚本之家

    使用Vue.js进行项目开发,那必然会使用基于组件的开发方式,这种方式的确给开发和维护带来的一定的便利性,但如果涉及到组件之间的数据与状态传递交互,就是一件麻烦事了,特别是面对有一大堆表单的页面. 在 ...

最新文章

  1. C++中模板template typename T
  2. jQuery版AJAX简易封装
  3. mysql 时区设定_如何设置MySQL 时区
  4. Java编程讲义之Eclipse开发工具
  5. xcode多工程联编 - 详细教程
  6. linux usb 驱动漏洞,不测不知道 这么多的USB漏洞要从何“补”起?
  7. VMware发布面向未来的员工工作解决方案,满足分散办公需求
  8. 框架源码专题:Spring的事件监听、发布机制 ApplicationListener
  9. 萌龙大乱斗 合成表 持续更新
  10. checkValidity()验证输入信息合法性,自定义错误提示信息方法及误区
  11. Android listview实现单选变化的效果
  12. OpenGL学习(八)phong光照模型
  13. CRC校验算法——C语言实现
  14. 制作u盘运行kali linux系统,U盘的进阶用法----打造U盘启动盘+USB KALI Linux+普通U盘。...
  15. Unity3d 周分享(8期 2018.12.16)
  16. 移动端 设计师设计APP UI常用软件总结
  17. 产品经理——从一块钱看产品推广方案
  18. 方差、标准差、均方误差和均方根误差
  19. java我的世界填充方块,【我的世界手游如何快速填充方块】我的世界MC中如何快速填满一个平面的方块...
  20. .NET 委托与事件

热门文章

  1. NET防SQL注入方法
  2. mac p配置android开发,Mac 下配置Android 环境变量
  3. 信息学奥赛一本通 1152:最大数max(x,y,z)
  4. 数论 —— 最大公约数与最小公倍数
  5. 信息学奥赛一本通C++语言——1001:Hello,World!
  6. aop阻止方法运行_新型AOP高级氧化高浓度COD废水处理系统介绍
  7. python中lambda的使用
  8. centos 安装git_在Centos8上安装Git的方法
  9. C++:map和pair
  10. VSCode+Win10安装