电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

vue父子組件間引用之$parent、$children

瀏覽:8日期:2023-01-19 18:27:45

vue中提到【父子組件】,則一定會想到我們常用的父子組件通信:props+$on()、$emit() ,如圖:

vue父子組件間引用之$parent、$children

也就是說,雖然在一般情況下,子組件是不能引用父組件或者Vue實例的數據,但是對于在開發中出現的“數據需要在組件中來回傳遞”,我們最簡單的解決辦法就是通過props(和v-on)將數據從父組件傳到子組件,再用$emit將數據從子組件傳到父組件,以此循環引用。

但是在另一些場景下,我們可能想要比如(在父組件中)拿到子組件對象,然后直接操作其中數據,去實現一些功能,比如方法的調用。

vue父子組件間引用之$parent、$children

有時候我們需要父組件直接訪問子組件、子組件直接訪問父組件,或者子組件訪問根組件:

父組件訪問子組件:使用$children或$refs reference 子組件訪問父組件:使用$parent

父子組件的訪問方式之:$children

children很特別,查閱資料可以發現:this.$children是一個數組類型,它包含了所有子組件對象:

<body><div id='app'><mxc></mxc><mxc></mxc><mxc></mxc><button @click='btnClick'>顫抖吧</button></div><template id='mxc'><div>我是子組件啊</div></template><script>const app=new Vue({el:’#app’,data:{message:’你好’},methods:{btnClick(){console.log(this.$children)}},components:{mxc:{template:’#mxc’,methods:{showMessage(){console.log(’mxcnb’)}}}}})</script></body>

點擊(父組件)按鈕之后:

vue父子組件間引用之$parent、$children

我們還可以通過循環拿到所有子組件數據:

<body><div id='app'><mxc></mxc><mxc></mxc><mxc></mxc><button @click='btnClick'>顫抖吧</button></div><template id='mxc'><div>我是子組件啊</div></template><script>const app=new Vue({el:’#app’,data:{message:’你好’},methods:{btnClick(){console.log(this.$children)for(let c of this.$children){console.log(c.name)}}},components:{mxc:{template:’#mxc’,data(){return{name:’我是子組件的name’}},methods:{showMessage(){console.log(’mxcnb’)}}}}})</script></body>

點擊(父組件)按鈕之后:

vue父子組件間引用之$parent、$children

因為是數組,所以我們可以通過比如:this.$children[2]來拿到第三個子組件的數據。但是這么做有一個問題:比如開發時突然在這三個子組件中又插入了一個子組件(可能相同,也可能不同),這時候【2】就不再是我們需要的了。。。

所以我們可以用vue-DOM之光:$refs :

<body><div id='app'><mxc></mxc><mxc></mxc><mxc ref='aaa'></mxc><button @click='btnClick'>顫抖吧</button></div><template id='mxc'><div>我是子組件啊</div></template><script>const app=new Vue({el:’#app’,data:{message:’你好’},methods:{btnClick(){console.log(this.$refs)console.log(this.$refs.aaa)}},components:{mxc:{template:’#mxc’,data(){return{name:’我是子組件的name’}},methods:{showMessage(){console.log(’mxcnb’)}}}}})</script></body>

點擊(父組件)按鈕之后:

vue父子組件間引用之$parent、$children

為什么叫“DOM之光”呢?因為它和原生JS中的document.querySelector(’xxx’)功能一樣,它可以在vue中獲取元素/匹配組件

子訪問父:$parent

<body><div id='app'><mxc></mxc></div><template id='mxc'><div>我是子組件啊</div><button @click='btnClick'>更加顫抖的child</button></template><script>const app=new Vue({el:’#app’,data:{message:’你好’},components:{mxc:{template:’#mxc’,methods:{btnClick(){console.log(this.$parent)}}}}})</script></body>

如法炮制:

vue父子組件間引用之$parent、$children

圖中el屬性在有些瀏覽器(或添加了vue插件)會顯示未Vue?因為當前子組件的父組件就是vue實例啊!

(但是在實際中$parent用的非常少——考慮到耦合度的原因)

子組件訪問根組件:$root

<body><div id='app'><mxc></mxc></div><template id='mxc'><div><div>我是mxc組件</div><cdn></cdn></div></template><template id='mxca'><div><div>我是子子組件啊</div><button @click='btnClick'>巨顫祖child</button></div></template><script>const app=new Vue({el:’#app’,data:{message:’你好’},components:{mxc:{template:’#mxc’,data(){return{name:’我是中間子組件的name’}},components:{cdn:{template:’#mxca’,methods:{btnClick(){console.log(this.$parent.name)console.log(this.$root.message)}}}}}}})</script></body>

vue父子組件間引用之$parent、$children

總結

到此這篇關于vue父子組件間引用:$parent、$children的文章就介紹到這了,更多相關vue父子組件間引用:$parent、$children內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
主站蜘蛛池模板: 风化石头制砂机_方解石制砂机_瓷砖石子制砂机_华盛铭厂家 | 山东螺杆空压机,烟台空压机,烟台开山空压机-烟台开山机电设备有限公司 | 潜水搅拌机-双曲面搅拌机-潜水推进器|奥伯尔环保 | 木材烘干机,木炭烘干机,纸管/佛香烘干设备-河南蓝天机械制造有限公司 | 恒压供水控制柜|无负压|一体化泵站控制柜|PLC远程调试|MCGS触摸屏|自动控制方案-联致自控设备 | 首页-恒温恒湿试验箱_恒温恒湿箱_高低温试验箱_高低温交变湿热试验箱_苏州正合 | 联系我们老街华纳娱乐公司官网19989979996(客服) | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 高柔性拖链电缆-聚氨酯卷筒电缆-柔性屏蔽电缆厂家-玖泰电缆 | 全自动定氮仪-半自动凯氏定氮仪厂家-祎鸿仪器 | 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 | 防水接头-电缆防水接头-金属-电缆密封接头-不锈钢电缆接头 | 工业铝型材生产厂家_铝合金型材配件批发精加工定制厂商 - 上海岐易铝业 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | 播音主持培训-中影人教育播音主持学苑「官网」-中国艺考界的贵族学校 | 模切之家-专注服务模切行业的B2B平台! | 北京公寓出租网-北京酒店式公寓出租平台 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 | 金蝶帐无忧|云代账软件|智能财税软件|会计代账公司专用软件 | 防爆电机-高压防爆电机-ybx4电动机厂家-河南省南洋防爆电机有限公司 | 搬运设备、起重设备、吊装设备—『龙海起重成套设备』 | 哈尔滨发电机,黑龙江柴油发电机组-北方星光 | 丹佛斯压力传感器,WISE温度传感器,WISE压力开关,丹佛斯温度开关-上海力笙工业设备有限公司 | 大学食堂装修设计_公司餐厅效果图_工厂食堂改造_迈普装饰 | 板材品牌-中国胶合板行业十大品牌-环保板材-上海声达板材 | 低粘度纤维素|混凝土灌浆料|有机硅憎水粉|聚羧酸减水剂-南京斯泰宝 | 5L旋转蒸发器-20L-50L旋转蒸发器-上海越众仪器设备有限公司 | 昆山新莱洁净应用材料股份有限公司-卫生级蝶阀,无菌取样阀,不锈钢隔膜阀,换向阀,离心泵 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 上海风淋室_上海风淋室厂家_上海风淋室价格_上海伯淋 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 知网论文检测系统入口_论文查重免费查重_中国知网论文查询_学术不端检测系统 | 工业设计,人工智能,体验式3D展示的智能技术交流服务平台-纳金网 J.S.Bach 圣巴赫_高端背景音乐系统_官网 | 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 数显恒温油浴-电砂浴-高温油浴振荡器-常州迈科诺仪器有限公司 |