vue 子组件将值传父组件,
时间: 2023-09-17 22:09:15 浏览: 71
在 Vue 中,子组件向父组件传值需要使用 `emit` 方法。
首先,在子组件中定义一个方法,并使用 `this.$emit()` 方法触发一个事件,并将要传递的值作为参数传递给该事件。例如,在子组件中定义一个按钮,当点击按钮时将当前输入框中的值传递给父组件:
```vue
<template>
<div>
<input type="text" v-model="inputValue">
<button @click="sendValue">发送</button>
</div>
</template>
<script>
export default {
data() {
return {
inputValue: ''
}
},
methods: {
sendValue() {
this.$emit('send', this.inputValue)
}
}
}
</script>
```
在上面的代码中,当点击按钮时,会触发 `sendValue` 方法,并通过 `this.$emit('send', this.inputValue)` 发送一个名为 `send` 的事件,并将 `inputValue` 作为参数传递给该事件。
接下来,在父组件中通过 `v-on` 指令监听子组件发送的事件,并在事件处理程序中获取传递的值。例如,在父组件中监听子组件发送的 `send` 事件,并将获取到的值打印出来:
```vue
<template>
<div>
<my-component @send="handleSend"></my-component>
</div>
</template>
<script>
import MyComponent from './MyComponent.vue'
export default {
components: {
MyComponent
},
methods: {
handleSend(value) {
console.log(value)
}
}
}
</script>
```
在上面的代码中,通过 `v-on` 指令监听子组件发送的 `send` 事件,当事件触发时,会调用 `handleSend` 方法,并将子组件传递的值作为参数传递给该方法。在 `handleSend` 方法中,可以获取到子组件传递的值,并对其进行处理。
阅读全文