1、父组件向子组件传值
(1)第一个就是要明白怎么在父页面中向子组件中传值?
你可以给子组件传入一个静态的值:
但我们一般都是需要传动态的值,所以需要v-bind绑定:
当然,你传的值可以是数字、对象、数组等等。
(2)第二个就是要知道如何在子组件中接受父页面传过来的值,有几点需要了解:
- 组件实例的作用域是孤立的;
- 子组件要显式的用
props
选项声明它预期的数据,如:
1 | // 某个子组件中: |
然后就可以在页面中使用了,具体我们在项目中体现。
2、子组件向父组件传值
那么我们延伸一下,子组件怎么向父组件传值? (1)基本概念
- 在Vue中,父子组件的关系可以总结为
prop
向下传递,事件
向上传递。父组件通过prop
给子组件下发数据,子组件通过事件
给父组件发送信息。
props down , events up
- 每个Vue实例都实现了事件接口:使用
$on(evntName)
监听事件;使用$emit(eventName,optionalPayload)
触发事件。另外,父组件可以在使用子组件的地方直接用v-on
来监听子组件触发的事件。
(2)举例说明
- 父组件在组件上定义了一个自定义事件
childFn
,事件名为parentFn
用于接受子组件传过来的message
值。
1 | <!-- 父组件 --> |
- 子组件是一个
buttton
按钮,并为其添加了一个click
事件,当点击的时候使用$emit()
触发事件,把message
传给父组件。
1 | <!-- 子组件 --> |
- 这样我们就基本实现了子组件向父组件发送值了。
点击send发送
父组件接收组件传过来的值