当前位置:网站首页>$parent/$children 与 ref
$parent/$children 与 ref
2022-07-31 03:19:00 【大象与小蚂蚁的生活】
- ref:如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例
- $parent / $children:访问父 / 子实例
需要注意的是:这两种都是直接得到组件实例,使用后可以直接调用组件的方法或访问数据。我们先来看个用 ref 来访问组件的例子:
// component-a 子组件
export default {
data () {
return {
title: 'Vue.js'
}
},
methods: {
sayHello () {
window.alert('Hello');
}
}
}
// 父组件
<template>
<component-a ref="comA"></component-a>
</template>
<script>
export default {
mounted () {
const comA = this.$refs.comA;
console.log(comA.title); // Vue.js
comA.sayHello(); // 弹窗
}
}
</script>
不过,这两种方法的弊端是,无法在跨级或兄弟间通信。
// parent.vue
<component-a></component-a>
<component-b></component-b>
<component-b></component-b>
我们想在 component-a 中,访问到引用它的页面中(这里就是 parent.vue)的两个 component-b 组件,那这种情况下,就得配置额外的插件或工具了,比如 Vuex 和 Bus 的解决方案。
总结
常见使用场景可以分为三类:
1.父子通信:
父向子传递数据是通过 props,
子向父是通过 events($emit);
通过父链 / 子链也可以通信($parent/$children);
ref 也可以访问组件实例;
provide/inject API;$attrs/$listeners
2.兄弟通信:
Bus;Vuex
3.跨级通信:
Bus;Vuex;provide/inject API、$attrs/$listeners
边栏推荐
猜你喜欢
递归查询单表-单表树结构-(自用)
Just debuted "Fight to Fame", safety and comfort are not lost
[Dynamic programming] Maximum sum of consecutive subarrays
12 Disk related commands
LeetCode简单题之找到和最大的长度为 K 的子序列
JS function this context runtime syntax parentheses array IIFE timer delay self.backup context call apply
With 7 years of experience, how can functional test engineers improve their abilities step by step?
大小端模式
Ambiguous method call.both
【C语言】预处理操作
随机推荐
品牌广告投放平台的中台化应用与实践
[Godot][GDScript] 2D cave map randomly generated
Local area network computer hardware information collection tool
Atomic operation CAS
Use of QML
Mysql 45讲学习笔记(二十三)MYSQL怎么保证数据不丢
els 方块向右移
Mysql 45 study notes (twenty-four) MYSQL master-slave consistency
Key Technologies of Interface Testing
TCP详解(一)
【C语言】表达式求值的一般方法
【C语言】三子棋(经典解法+一览图)
STM32 problem collection
Database implements distributed locks
【C语言】进制转换一般方法
Difference between unallocated blocks and unused blocks in database files
postgresql 15源码浅析(5)—— pg_control
SQL injection Less54 (limited number of SQL injection + union injection)
The application and practice of mid-to-platform brand advertising platform
Getting Started with CefSharp - winform