父组件向子组件传值:
- 子组件在props中创建一个属性,用以接收父组件传过来的数据。
- 父组件中注册子组件。通过属性绑定(v-bind:)的形式,把需要传递给子组件的数据传递到子组件的内部,供子组件使用。
- 在子组件标签中添加子组件props中创建的属性。
- 把需要传给子组件的值赋给该属性。
注意:
- prop 是子组件用来接受父组件传递过来的数据的一个自定义属性。
- 父组件的数据需要通过 props 把数据传给子组件,子组件需要显式地用 props 选项声明 “prop”。
- prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,但是不会反过来。
- props中的数据都是只读的,无法进行重新赋值。
子组件向父组件传值
-
子组件需要以某种方式例如点击事件的方法来触发一个自定义事件。
-
将需要传递的值作为$emit的第二个参数,该值将作为实参传递给响应自定义事件的方法。
-
在父组件中注册子组件,在子组件标签上监听该自定义事件,并添加一个响应该事件的处理方法。
注意:
-
父组件是使用 props 传递数据给子组件,但如果子组件要把数据传递回去,就需要使用自定义事件。
-
我们可以使用 v-on 绑定自定义事件, 每个 Vue 实例都实现了事件接口(Events interface),即:
使用 $on(eventName) 监听事件;
使用 $emit(e