子组件怎么获取封装的form表单的input事件
时间: 2024-03-22 14:41:26 浏览: 59
vue复杂的form表单封装和使用
5星 · 资源好评率100%
子组件可以通过$refs来获取封装的form表单的input事件,具体的实现可以参考下面的代码:
封装的form表单组件:
```
<template>
<el-form :model="form" ref="form" label-width="100px">
<el-form-item label="Input">
<el-input v-model="form.input" @change="handleInput" :style="{width: inputWidth + 'px'}"></el-input>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
input: ''
},
inputWidth: 200
}
},
methods: {
handleInput() {
// 自定义input控件的change事件
this.$emit('input-change', this.form.input)
}
}
}
</script>
```
父组件,使用封装的form表单组件,在父组件中监听子组件的input-change事件:
```
<template>
<div>
<!-- 使用封装的form表单组件 -->
<my-form @input-change="handleInputChange"></my-form>
</div>
</template>
<script>
import MyForm from './MyForm.vue'
export default {
components: {
'my-form': MyForm
},
methods: {
handleInputChange(val) {
console.log(val) // 获取子组件传递过来的input值
}
}
}
</script>
```
在封装的form表单组件中,通过this.$emit('input-change', this.form.input)来触发input-change事件,并将input的值作为参数传递给父组件。在父组件中,通过监听子组件的input-change事件来获取子组件传递过来的input值。
阅读全文