网站链接: 我爱捣鼓
当前位置: 首页 > 前端开发 > Vue

vue父组件调用子组件的方法有几种

2023/2/24 21:47:16

vue父组件调用子组件的方法只有通过refs方法。vue 中refs的作用及用法1.获取dom元素 通过`this.$refs.name`获取dom元素// HTML<div ref="myref">123</div>// JSlet myDOM = this.$refs.myref;console.log(myDOM); // <div data-v-4bf94f…

        vue父组件调用子组件的方法只有通过refs方法。

  • vue 中refs的作用及用法

1.获取dom元素

        通过`this.$refs.name`获取dom元素

// HTML
<div ref="myref">123</div>
// JS
let myDOM = this.$refs.myref;
console.log(myDOM); // <div data-v-4bf94fa0>123</div>

2.获取子组件中的data

// 子组件
<template>
  <div>
    我是子组件
  </div>
</template>
<script>
export default {
  data() {
    return {
      name: "myhua"
    };
  }
};
</script>
// 父组件
<template>
  <div id="app">
    <Son ref="myref"></Son>
  </div>
</template>
<script>
import Son from "./components/son";
export default {
  mounted() {
    console.log(this.$refs.myref.name); //输出子组件data中的name的值:myhua
  },
  components: {
    Son
  }
};
</script>

3.调用子组件中的方法

// 子组件
<template>
  <div>
    我是子组件
  </div>
</template>
<script>
export default {
  methods: {
    logName() {
      console.log("myhua!!");
    }
  }
};
</script>
// 父组件
<template>
  <div id="app">
    <Son ref="myref"></Son>
  </div>
</template>
<script>
import Son from "./components/son";
export default {
  mounted() {
    this.$refs.myref.logName();//子组件中的方法
  },
  components: {
    Son
  }
};
</script>

        vue中如果父组件想调用子组件的方法,可以在子组件中加上ref,然后通过this.$refs.ref.method调用。

例子1:

//父组件中
<template>
    <div>
        <Button @click="handleClick">点击调用子组件方法</Button>
        <Child ref="child"/>
    </div>
</template>    
<script>
import Child from './child';
export default {
    methods: {
        handleClick() {
              this.$refs.child.sing();
        },
    },
}
</script>
//子组件中
<template>
  <div>我是子组件</div>
</template>
<script>
export default {
  methods: {
    sing() {
      console.log('我是子组件的方法');
    },
  },
};
</script>

例子2:

父组件:

<template>
  <div @click="fatherMethod">
    <child ref="child"></child>
  </div>
</template>
<script>
  import child from '~/components/dam/child.vue';
  export default {
    components: {
      child
    },
    methods: {
      fatherMethod() {this.$refs.child.childMethods();
      }
    }
  };
</script>

子组件:

<template>
  <div>{{name}}</div>
</template>
<script>
  export default {
    data() {
      return {
        name: '测试'
      };
    },
    methods: {
      childMethods() {
        console.log(this.name);
      }
    }
  };
</script>

        通过以上内容我们知道了vue父组件调用子组件的方法有几种。感谢您访问“我爱捣鼓(www.woaidaogu.com)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!

相关资讯

  • vue兄弟平级组件如何传递参数值?

    vue组件传值不外乎三种,父传子、子传父、平级,今天我们就来着重说说vue平级组件如何传递参数值? 假设你有两个Vue组件需要通信: A 和 B ,A组件按钮上面绑定了点击事件,发送一则消息,B组件接收。初始化,全局创建$bus 直接在项目中的 main.js 初始化 …

    2023/1/7 13:08:32