Vue引入components(组件)以及父子组件方法调用和参数传递

Vue引入components以及父子组件方法调用和参数传递

父组件parent.vue引入 组件 child.vue

// 父组件引入子组件
<template>
  <div>
    <dataSource @getLink="getMyLink" :objData="data"  ref="dataSource"></dataSource>
    <el-button @click="getDataSource">获取</el-button>
  </div>
</template>

<script>
import dataSource from '../components/data-source'
export default {
  name: "parent",
  components: { dataSource},
  data() {
    return {
      data:{name:'222'},
    };
  },
  methods: {
    // 父组件方法
    getMyLink(item){
      console.log('父子组件方法',item)
    },
    // 父组件方法
    getDataSource(){
    // 父组件调用子组件handleSubmit()方法, dataSource 为子组件ref的值
      const aa=this.$refs.dataSource.handleSubmit();
    }
  },
};
</script>

子组件 child.vue

//子组件 child.vue
<template>
  <div>
      <avue-form
        :option="option"
        ref="form"
        v-model="form"
        @submit="handleSubmit"
      >
        <template slot-scope="scope" slot="path">
          <el-cascader :props="props" v-model="form.path"></el-cascader>
        </template>
      </avue-form>
  </div>
</template>
<script>
export default {
  name: "dataSource",
  //属性参数
   props: {
    objData:{
        type:Object
    }
  },
  data() {
  },
   methods: {
    // 子组件中
    getPre(item){
      //通过 getLink 调用父组件方法 item 为数组
      this.$emit('getLink', item);
      //使用父组件传递过来的属性参数
      console.log('objData',this.objData)
    },
  }
}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3中,父组件可以通过props属性向子组件传递数据,而子组件可以通过$emit方法向父组件发送信息。下面是一个简单的示例来说明父子组件之间如何调用方法: 在父组件中,首先需要在子组件上定义一个ref属性,用于获取子组件实例的引用。然后,在需要调用组件方法的地方,可以通过该引用来调用组件方法。 ```vue <template> <div> <ChildComponent ref="child"></ChildComponent> <button @click="callChildMethod">调用组件方法</button> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent, }, methods: { callChildMethod() { this.$refs.child.childMethod(); // 调用组件方法 }, }, }; </script> ``` 在子组件中,需要将需要调用方法定义在methods选项中,并通过$emit方法向父组件发送消息。 ```vue <template> <div> <button @click="childMethod">子组件方法</button> </div> </template> <script> export default { methods: { childMethod() { this.$emit('childMethodCalled'); // 向父组件发送消息 }, }, }; </script> ``` 在父组件中,可以通过监听子组件的事件来接收消息。 ```vue <template> <div> <ChildComponent @childMethodCalled="handleChildMethodCalled"></ChildComponent> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent, }, methods: { handleChildMethodCalled() { // 处理子组件方法调用 }, }, }; </script> ``` 通过以上方式,父组件就可以调用组件方法了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值