Vue子组件调用父组件的方法

Dear 丶 2022-11-12 09:47 289阅读 0赞

Vue中子组件调用父组件的方法,三种方法

  • 第一种方法是在子组件中通过this.$parent.event来调用父组件的方法

父组件:

  1. <template>
  2. <div>
  3. <child></child>
  4. </div>
  5. </template>
  6. <script>
  7. import child from '~/components/child';
  8. export default {
  9. components: {
  10. child
  11. },
  12. methods: {
  13. fatherMethod() {
  14. console.log('父组件方法');
  15. }
  16. }
  17. };
  18. </script>

子组件:

  1. <template>
  2. <div>
  3. <button @click="childMethod()">点击</button>
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. methods: {
  9. childMethod() {
  10. this.$parent.fatherMethod();
  11. }
  12. }
  13. };
  14. </script>
  • 第二种方法是在子组件里用$emit向父组件触发一个事件,父组件监听这个事件。

父组件:

  1. <template>
  2. <div>
  3. <child @fatherMethod="fatherMethod"></child>
  4. </div>
  5. </template>
  6. <script>
  7. import child from '~/components/child';
  8. export default {
  9. components: {
  10. child
  11. },
  12. methods: {
  13. fatherMethod() {
  14. console.log('父组件方法');
  15. }
  16. }
  17. };
  18. </script>

子组件:

  1. <template>
  2. <div>
  3. <button @click="childMethod()">点击</button>
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. methods: {
  9. childMethod() {
  10. this.$emit('fatherMethod');
  11. }
  12. }
  13. };
  14. </script>
  • 第三种是父组件把方法传入子组件中,在子组件里直接调用这个方法

父组件:

  1. <template>
  2. <div>
  3. <child :fatherMethod="fatherMethod"></child>
  4. </div>
  5. </template>
  6. <script>
  7. import child from '~/components/child';
  8. export default {
  9. components: {
  10. child
  11. },
  12. methods: {
  13. fatherMethod() {
  14. console.log('父组件方法');
  15. }
  16. }
  17. };
  18. </script>

子组件:

  1. <template>
  2. <div>
  3. <button @click="childMethod()">点击</button>
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. methods: {
  9. childMethod() {
  10. if (this.fatherMethod) {
  11. this.fatherMethod();
  12. }
  13. }
  14. }
  15. };
  16. </script>

发表评论

表情:
评论列表 (有 0 条评论,289人围观)

还没有评论,来说两句吧...

相关阅读