组件传值:父传子,子传父,非父子

461 阅读1分钟

组件传值

父子组件的关系可以总结为 prop 向下传递,事件向上传递。父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息。无论是子传父还是父传子都是在父组件里面引入子组件

父传子

父组件:

__MCA8MGF8H%FFG}FMFED9L.png

被括中的 :arr 是自定义的事件,传递一个数据

子组件:

2)$TL(1AT@5@`163LMD%659.png

被括中的 props 中接收的是父组件自定义的事件,这里接收的是固定的数据类型 Number 如果想接收的数据类型不限制可以如下图:

不限制数据类型.png

子传父

子组件:

子组件.png

子组件中被括中的 @click='自定义事件名称',并用 this.$emit传递

父组件:

父组件.png

父组件中被括中的 @set='自定义事件' @set是子组件中定义的事件名称,必须一致

非父子

非父子组件之间传值,需要定义个公共的公共实例文件bus.js,作为中间仓库来传值,不然路由组件之间达不到传值的效果。

公共bus.js:

import Vue from "vue";
export default new Vue();

组件one:

image.png

组件two:

image.png