vue子组件调用父组件函数_vue子组件修改父组件值

vue子组件调用父组件函数_vue子组件修改父组件值vue子组件调用父组件的3种方法

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1. 直接在子组件中通过this.$parent.event来调用父组件的方法

父组件:

<template>
  <div>
    <child></child>
  </div>
</template>
<script>
  import child from '~/components/dam/child';
  export default { 
   
    components: { 
   
      child
    },
    methods: { 
   
      fatherMethod() { 
   
        console.log('测试');
      }
    }
  };
</script>

子组件:

<template>
  <div>
    <button @click="childMethod()">点击</button>
  </div>
</template>
<script>
  export default { 
   
    methods: { 
   
      childMethod() { 
   
        this.$parent.fatherMethod();
      }
    }
  };

2. 在子组件里用$emit向父组件触发一个事件,父组件监听这个事件

父组件:

<template>
  <div>
    <child @fMethod="fatherMethod"></child>
  </div>
</template>
<script>
  import child from '~/components/dam/child';
  export default { 
   
    components: { 
   
      child
    },
    methods: { 
   
      fatherMethod(data) { 
   
        console.log(data);
      }
    }
  };
</script>

子组件:

<template>
  <div>
    <button @click="childMethod()">点击</button>
  </div>
</template>
<script>
  export default { 
   
    methods: { 
   
      childMethod() { 
   
        this.$emit('fMethod',data);
      }
    }
  };
</script>

3. 父组件把方法传入子组件中,在子组件里直接调用

父组件:

<template>
  <div>
    <child :fatherMethod="fatherMethod"></child>
  </div>
</template>
<script>
  import child from '~/components/dam/child';
  export default { 
   
    components: { 
   
      child
    },
    methods: { 
   
      fatherMethod() { 
   
        console.log('测试');
      }
    }
  };
</script>

子组件:

<template>
  <div>
    <button @click="childMethod()">点击</button>
  </div>
</template>
<script>
  export default { 
   
    props: { 
   
      fatherMethod: { 
   
        type: Function,
        default: null
      }
    },
    methods: { 
   
      childMethod() { 
   
        if (this.fatherMethod) { 
   
          this.fatherMethod();
        }
      }
    }
  };
</script>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186888.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mybatis二级缓存问题_mybatis清空二级缓存

    mybatis二级缓存问题_mybatis清空二级缓存转载:https://www.cnblogs.com/xrq730/p/6991655.html

    2022年9月20日
  • Node.js详细安装教程

    Node.js详细安装教程一、安装环境1、本机系统:Windows10Pro(64位)2、Node.js:v6.9.2LTS(64位)二、安装Node.js步骤1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/2、选安装目录进行安装3、环境配置4、测试三、前期准备1、Node.js简介简单的说Node.js就是运行在服务端的JavaScript。Node.js是一个基于ChromeV8引擎的JavaScript运行环境。Node.js使用

    2022年7月16日
  • java json 根据 key排序[通俗易懂]

    java json 根据 key排序[通俗易懂]阿里的JsonObject内部是用Hashmap来存储的,所以输出是按key的排序来的,如果要让JsonObject按固定顺序(put的顺序)排列,可以修改JsonObject的定义HashMap改为LinkedHashMap。publicJSONObject(){this.map=newLinkedHashMap();//newHashMap();…

    2022年9月8日
  • docker命令详解「建议收藏」

    docker命令详解「建议收藏」镜像下载搜索镜像dockersearch+镜像名字#dockersearchcentos从DockerHub中搜索符合条件的镜像下载镜像#dockerpull+镜像名字#dockerpullcentos查看镜像#dockerimages开启网络转发功能(默认为开启状态)若无开启,可以使用以下命令开启#vim/etc/sysctl…

    2022年5月13日
  • MySQL自增主键详解「建议收藏」

    MySQL自增主键详解「建议收藏」一、自增值保存在哪儿?不同的引擎对于自增值的保存策略不同1.MyISAM引擎的自增值保存在数据文件中2.InnoDB引擎的自增值,在MySQL5.7及之前的版本,自增值保存在内存里,并没有持久化。每次重启后,第一次打开表的时候,都会去找自增值的最大值max(id),然后将max(id)+步长作为这个表当前的自增值selectmax(ai_col)fromtable_namefor…

    2022年6月7日
  • android图片文字识别器,图片转换文字识别器[通俗易懂]

    android图片文字识别器,图片转换文字识别器[通俗易懂]图片转换文字识别器是一款非常好用的功能非常强的图片转换文字手机工具,在图片转换文字识别器软件上有着非常多的功能,用户可以使用这款软件在我们工作中解决很多的问题和麻烦,是一款办公学习必备神器,感兴趣的朋友赶紧下载图片转换文字识别器开始使用吧!图片转换文字识别器软件介绍这款软件的使用方式也是超级简单的只要你想打印文字的图片上传就可以了上传之后,他经过简单的识别,只需要短短几秒之内就可以把你想要打印的文…

    2022年6月3日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号