Vue 子界面获取不到数据问题(组件)

子界面获取不到数据的问题困惑了一晚上,今早头脑清醒一下就搞定了

    @*父页面*@
                    <el-form-item label="测试" >
                        <ns-multilanguage-edit v-model="FTest"
                                               :FieldName="'FLayoutName'"
                                               :FtableName="'t_Bos_Layout'"
                                               :FID="'27'"></ns-multilanguage-edit>
                    </el-form-item>

子界面

  model: {
            prop: 'FTest',
            event: 'valuechange'
        },
        //声明props
        props: {
            FTest: {
                type: String,
                default: "",
            },
            FtableName: {
                type: String,
                default: "",
            },
            FieldName: {
                type: String,
                default: "",
            },
            FID: {
                type: Number,
                default: 0,
            },
        },

当我测试的时候,发现永远都拿不到值,原因是因为prop的大小写问题,理由:https://cn.vuejs.org/v2/guide/components-props.html

更改代码:

 @*父页面*@
                    <el-form-item label="测试" >
                        <ns-multilanguage-edit v-model="FTest"
                                               :fieldname="'FModelName'"
                                               :ftablename="'t_WT_Table'"
                                               :fid="'50'"></ns-multilanguage-edit>
                    </el-form-item>
  model: {
            prop: 'FTest',
            event: 'valuechange'
        },
        //声明props
        props: {
            FTest: {
                type: String,
                default: "",
            },
            ftablename: {
                type: String,
                default: "",
            },
            fieldname: {
                type: String,
                default: "",
            },
            fid: {
                type: Number,
                default: 0,
            },
        },

再次运行,就能拿到值了,还有一种kebab-case (短横线分隔命名) 命名方法也可以拿到值,自己去试试就知道了。

个人建议,VUE开发建议使用小写加kebab-case命名,这样防止更多的错误出现。

原文地址:https://www.cnblogs.com/yueyongsheng/p/14299268.html