Vue组件之间的通信
发布日期:2022-02-22 18:04:20 浏览次数:11 分类:技术文章

本文共 2674 字,大约阅读时间需要 8 分钟。

  一、父组件向子组件传值和方法

  我们知道,默认情况下,子组件是无法获取到父组件的值和方法的。

  •  子组件获取父组件的值

   子组件想要获取父组件的值,需要父组件给被引用的子组件绑定一个自定义属性来接收父组件传的值

 

//通过v-bind绑定一个自定义属性,msg是父组件定义的值         Vue.component("parent",{             template:`                

父组件

` });

 

  子组件需要用props中接收父组件传递的值,并且props中的参数是只读的

// 子组件可以直接调用props中的参数        Vue.component("child",{            template:`                

子组件

{

{parMsg}}

`, props:["parMsg"] });

  子组件获取父组件data的简单方法

  直接this.$parent.变量, 比如:this.$parent.name

 

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

  子组件想要获取父组件的方法,需要父组件给被调用的子组件绑定一个自定义的方法名

// func为自定义的方法名 ,show为父组件的方法         Vue.component("parent",{             template:`                

父组件

`, methods:{ show(){ console.log("我是你爸爸"); } } });

  子组件中想要调用父组件的方法,必须通过$emit方法触发, $emit("需要触发的方法","需要传递的参数")

 

Vue.component("child",{            template:`                

子组件

`, methods:{ myClick(){ this.$emit("func"); } } });

 

  二、子组件向父组件传值

  子组件向父组件传值相对麻烦一点,通过给被调用子组件绑定自定义方法的方式,在this.$emit()中传递值,父组件定义一个方法接收

 

Vue.component("parent",{            template:`                

父组件

{

{msgs}}

`, data:function(){ return { msgs:"" } }, methods:{ getData(msg){ this.msgs = msg; } } }); Vue.component("child",{ template:`

子组件

`, data:function(){ return { msg:"我是大头儿子" } }, methods:{ sendData(){ this.$emit("dataEvent",this.msg); } } });

 

  子组件向父组件传值的简单写法

  首先,需要给被调用的子组件上添加属性ref,

  然后,直接this.$refs.子组件的ref值.变量 比如:this.$refs.mySon.name

Vue.component("parent",{            template:`                
` });

 

  

转载于:https://www.cnblogs.com/Ryan777/p/10734759.html

转载地址:https://blog.csdn.net/dianshanban9429/article/details/101311494 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:关于同步访问与异步访问
下一篇:AWS上SUSE Linux 11 SP4添加网卡遇到的坑

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月04日 01时34分38秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

【Leetcode刷题篇】leetcode322 零钱兑换 2019-04-26
【Leetcode刷题篇】leetcode437 路径总和III 2019-04-26
【Linux篇】Linux常用命令之性能优化 2019-04-26
【面试篇】JVM体系 2019-04-26
【Leetcode刷题篇】leetcode406 根据身高重建队列 2019-04-26
【Leetcode刷题篇】leetcode581 最短无序连续子数组 2019-04-26
【Leetcode刷题篇】leetcode538 把二叉搜索树转换为累加树 2019-04-26
【多线程与高并发】线程的优先级是怎么回事? 2019-04-26
【多线程与高并发】Java守护线程是什么?什么是Java的守护线程? 2019-04-26
【Leetcode刷题篇/面试篇】-前缀树(Trie) 2019-04-26
【Leetcode刷题篇】leetcode337 打家劫舍III 2019-04-26
【Leetcode刷题篇】leetcode4 寻找两个正序数组的中位数 2019-04-26
【Leetcode刷题篇】leetcode316 去除重复字母 2019-04-26
【Leetcode刷题篇】leetcode1081 不同字符的最小子序列 2019-04-26
【面试篇】Java网络编程与IO流体系 2019-04-26
【大话Mysql面试】-Mysql的索引为什么要使用B+树,而不是B树,红黑树等之类? 2019-04-26
【大话Mysql面试】-如何通俗易懂的了解Mysql的索引最左前缀匹配原则 2019-04-26
【大话Mysql面试】-MYSQL的两种存储引擎MyISAM与InnoDB的区别是什么? 2019-04-26
【大话Mysql面试】-InnoDB可重复读隔离级别下如何避免幻读?MVCC和next-key是什么 2019-04-26
【大话Mysql面试】-Mysql如何恢复数据?如何进行主从复制?Binlog日志到底是什么? 2019-04-26