vue中app.vue中使用了router-view标签,如何父子组件传参
时间: 2024-03-09 09:46:39 浏览: 53
vue中的router-view组件的使用教程
在Vue中,父子组件之间传递参数的方式有多种,以下是其中的两种常用方式:
1. 使用props属性
可以在子组件中使用props属性声明需要从父组件接收的参数,然后在父组件中通过属性绑定的方式传递参数。例如:
父组件:
```
<template>
<div>
<child-component :name="parentName"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue'
export default {
name: 'ParentComponent',
components: {
ChildComponent
},
data () {
return {
parentName: 'John'
}
}
}
</script>
```
子组件:
```
<template>
<div>
<p>Hello, {{ name }}</p>
</div>
</template>
<script>
export default {
name: 'ChildComponent',
props: {
name: String
}
}
</script>
```
在上面的例子中,父组件通过属性绑定的方式将parentName传递给了子组件的name属性。
2. 使用$emit方法
可以在子组件中通过$emit方法触发一个自定义事件,并将需要传递的参数作为事件参数传入。然后在父组件中监听这个自定义事件,并在事件处理函数中获取到参数。例如:
父组件:
```
<template>
<div>
<child-component @child-event="handleChildEvent"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue'
export default {
name: 'ParentComponent',
components: {
ChildComponent
},
methods: {
handleChildEvent (childParam) {
console.log(childParam)
}
}
}
</script>
```
子组件:
```
<template>
<div>
<button @click="handleClick">Click Me</button>
</div>
</template>
<script>
export default {
name: 'ChildComponent',
methods: {
handleClick () {
this.$emit('child-event', 'Hello from child component')
}
}
}
</script>
```
在上面的例子中,子组件通过$emit方法触发了一个名为child-event的自定义事件,并将字符串'Hello from child component'作为事件参数传入。父组件通过@child-event监听了这个自定义事件,并在事件处理函数handleChildEvent中获取到了这个参数。
希望这些解释能够帮助你理解父子组件之间传递参数的方式,如果你还有其他问题,请继续提问。
阅读全文