美文网首页
怎么在父组件中操作子组件的相关方法

怎么在父组件中操作子组件的相关方法

作者: yunshengz | 来源:发表于2021-01-27 15:22 被阅读0次

这个需求主要用到的是ref属性和$refs对象

先说ref,ref被用来给元素或者子组件注册引用信息。给普通的DOM元素使用,引用指向的就是DOM元素,用在子组件上,引用就指向组件实例。
当你注册之后需要访问你注册的refDOM或者子组件是通过$refs来获取。

当你DOM上注册ref时,你可以用this.$refs.form.xxx,来操作这个DOM的方法。
<template>
  <el-form
     ref="form" 
     :model="form"
     class="u-form"
   >
    // some code 
  </el-form>
</template>

<script>
  export default {
      data() {
        return {};
      },
      methods: {
         handleSubmit() {
           this.$refs.form.validate(async (valid) => {
                if (valid) {
                    // some code
                }
          });
        }
      }
  }
</script>
当你注册子组件时,同样可通过this.$ref.ch在父组件中获取子组件。
<template>
  <section>

    // some code

    <RiskDialog 
      ref="ch"
      :dialogVisible.sync="riskVisible"
      :form="data.riskForm"
      @postRisk="postRiskHandle"
    />
  </section>
</template>

<script>
 import RiskDialog from 'xxxxx';

  export default {
    data() {
      return { };
    },
    fn() {
        // 在父组件中找到子组件,并操作子组件的相关方法
        this.$refs.ch.click();
    }
  }
</script>
当想在父组件中获取子组件,并操作子组件中有设置ref的DOM的方法是改怎么做?
this.$refs.ch.$refs.form.resetFields();

以上就是就是关于父组件操作子组件的相关方法了,详细的可以去看Vue相关文档,里面有详细的说明。

相关文章

网友评论

      本文标题:怎么在父组件中操作子组件的相关方法

      本文链接:https://www.haomeiwen.com/subject/gkkazktx.html