首页 > 其他 > 详细

vue-cli 中使用父子之间传值_父组件传值子组件_封装form表单

时间:2020-06-28 20:36:22      阅读:456      评论:0      收藏:0      [点我收藏+]

vue-cli 中使用父子之间传值_父组件传值子组件_封装form表单

使用prop属性,(借助v-bind绑定)

study01.vue 中代码

技术分享图片
<template>
    <div>
        <h3>这里是需求页面</h3>
        <v-form-work ref="form-work" :arrForm="tabsFormData"></v-form-work>
    </div>
</template>
<script>
    import Vue from vue
    import Antd, { message,Select } from ant-design-vue
    import ant-design-vue/dist/antd.css
    import vFormWork from ../../components/formWork
    
    Vue.use(Antd);


    export default {
        components:{
            vFormWork
        },
        data() {
            return {
                tabsFormData: [ //图书表单
                    // {typeItem: "表单类型", nameLabel: "输入框label", width: "大小", disabled: "是否禁用",handleClick:"操作事件",isActive:"是否开启操作事件,默认不开启"}, 
                    {typeItem: "input", nameLabel: "名字", width: "40px", disabled: false}, 
                    {typeItem: "input", nameLabel: "价格", width: "40px", disabled: false,handleClick:"priceClick",isActive:true},
                    {typeItem: "input", nameLabel: "作者", width: "40px", disabled: true,isActive:false},
                ],
            }
        },
    };
</script>
View Code

组件formWork.vue 中代码

技术分享图片
<template>
    <div id="">
        <h4>这里是表单操作事件处理</h4>
        <v-form-content ref="form"  :arrForm="arrForm" @priceClick="priceClick"></v-form-content>
    </div>
</template>

<script>
    import Vue from vue
    import Antd, { message,Select } from ant-design-vue
    import ant-design-vue/dist/antd.css
    import vFormContent from ../components/formContent

    Vue.use(Antd);
    
    export default {
        name: "formWork",
        components:{
            vFormContent
        },
        props:{
            arrForm: {
                type: Array,
                required: true,
                default() {
                    return [
                        {handleClick:test},
                    ]
                }
            }
        },
        methods:{
            priceClick() {
                console.log("我是点击事件");
            },
        }
    }
</script>

<style scoped>

</style>
View Code

组件formContent.vue 中代码

技术分享图片
<template>
    <div id="">
        <h5>这里是表单内容</h5>
        <a-form layout="inline">
            <a-form-item :label="item.nameLabel" :key="index" v-for="(item,index) in arrForm">
                <a-input placeholder="请输入" :disabled="item.disabled" @click="item.isActive?$emit(item.handleClick):‘‘" />
            </a-form-item>
        </a-form>
    </div>
</template>

<script>
    import Vue from vue
    import Antd, { message,Select } from ant-design-vue
    import ant-design-vue/dist/antd.css
    Vue.use(Antd);
    
    export default {
        name: "formContent",
        props:{
            arrForm: {
                type: Array,
            },
        }
    }
</script>

<style scoped>

</style>
View Code

技术分享图片

 

 

vue-cli 中使用父子之间传值_父组件传值子组件_封装button按钮

vue组件之间传值(01)__父组件传值子组件 props

 

vue-cli 中使用父子之间传值_父组件传值子组件_封装form表单

原文:https://www.cnblogs.com/dafei4/p/13204450.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!