vue中$children的理解
官网介绍 $children
$children 获取当前实例的直接子组件 。需要注意 $children 并不保证顺序,也不是响应式的。[特别重要]
如果你发现自己正在尝试使用 $children 来进行数据绑定,
考虑使用一个数组配合 v-for 来生成子组件,并且使用 Array 作为真正的来源。
注意1:注意当期实例是指这个文件下的实例。直接子组件是指这个文件下的直接子组件。
如果子组件中还有子组件则孙子组件不能算直接子组件。
注意2:缺点:需要通过索引才能拿到自己想要的子组件,如果删除了某个子组件,会影响到子组件的结果,所以在实际的开发中比较少用
因此使用这个属性的时候一定要慎之又慎。
$children的简单使用
//childSon 子组件
<template>
<div class="son-child-div">
<h1>我是子组件:{{ msg}}</h1>
</div>
</template>p
<script>
export default {
data(){
return {
msg:'子组件的数据'
}
}
}
</script>
//父组件
<template>
<div>
<el-button @click="handlerMe">点我</el-button>
<childSon></childSon>
</div>
</template>
<script>
import childSon from "@/components/child/childSon.vue"
export default {
components:{
childSon
},
data() {
return {
info:'info'
}
},
methods:{
handlerMe(){
console.log('==>',this.$children) //输出数组长度是2
}
}
};
</script>

为什么输出的数组长度是2?不应该是1嘛?
console.log('==>',this.$children) //输出数组长度是2
之所以是输出的长度是2。是因为children 获取当前实例的直接子组件。
此时可能会有小伙伴说:我不是子引入了一个 childSon 组件吗?是2 ? ???? 你怕不是在骗我不识数哦。
你好好在看看。
你的意思是说: <el-button @click="handlerMe">点我</el-button> 也算一个组件吗? 是的。也是1个。
此时恍然大悟。 如果你把它改成普通的按钮 button, 不去使用 el-button 组件就是1个了。
$children修改子组件中的数据
//父组件
<template>
<div>
<button @click="handlerMe">点我</button>
<childSon></childSon>
</div>
</template>
<script>
import childSon from "@/components/child/childSon.vue"
export default {
components:{
childSon
},
data() {
return {
info:'info'
}
},
methods:{
handlerMe(){
console.log('==>',this.$children) //输出数组长度为1了
this.$children[0].msg = '我改了数据';
}
}
};
</script>

啰嗦一下:$children修改子组件中的数据
$children 修改数据的话,一定要慎之又慎。或者建议不要使用它来修改数据。【反正我不建议】
因为:需要通过索引才能拿到自己想要的子组件。
如果删除了某个子组件,会影响到子组件的结果,这样会导致修改失败。
所以在实际的开发中比较少用。或者不用它
因此使用这个属性的时候一定要慎之又慎。
其实我个人觉得这个属性挺鸡肋的。通信我们可以使用 props, project,...
vue中$children的理解的更多相关文章
- vue中keepalive怎么理解?---vue中文社区
vue中keepalive怎么理解? 说在前面: keep-alive是vue源码中实现的一个组件, 感兴趣的可以研究源码 https://github.com/vuejs/vue/blob/dev/ ...
- vue中mixins的理解及应用
vue中mixins的理解及应用 vue中提供了一种混合机制--mixins,用来更高效的实现组件内容的复用.最开始我一度认为这个和组件好像没啥区别..后来发现错了.下面我们来看看mixins和普通情 ...
- Vue中$nextTick的理解
Vue中$nextTick的理解 Vue中$nextTick方法将回调延迟到下次DOM更新循环之后执行,也就是在下次DOM更新循环结束之后执行延迟回调,在修改数据之后立即使用这个方法,能够获取更新后的 ...
- vue渐进式开发的理解和指令
1.vue渐进式开发 vue是一个渐进式的框架,轻量,易于上手,为啥是渐进式那,我当时也很蒙,比如的官网是jquery写的,就可以通过script标签引入事先准备好的vue.min.js的压缩源代码或 ...
- Vue学习之--------深入理解Vuex之多组件共享数据(2022/9/4)
在上篇文章的基础上:Vue学习之--------深入理解Vuex之getters.mapState.mapGetters 1.在state中新增用户数组 2.新增Person.vue组件 提示:这里使 ...
- 理解MVVM在react、vue中的使用
理解MVVM在react.vue中的使用 一:什么是MVC.为什么不用MVC 1:MVC的含义: M(modal):是应用程序中处理数据逻辑的部分. V (view) :是应用程序中数据显示的部分. ...
- 函数防抖节流的理解及在Vue中的应用
防抖和节流的目的都是为了减少不必要的计算,不浪费资源,只在适合的时候再进行触发计算. 一.函数防抖 定义 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时:典型的案例就是输入搜索:输入 ...
- Vue学习之--------深入理解Vuex、原理详解、实战应用(2022/9/1)
@ 目录 1.概念 2.何时使用? 3.搭建vuex环境 3.1 创建文件:src/store/index.js 3.2 在main.js中创建vm时传入store配置项 4.基本使用 4.1.初始化 ...
- Vue.js学习与理解
Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的库.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. Vue.js 自身不 ...
- vue新手入门——谈谈理解
毕业到现在大概4个月了,从java开发慢慢转到前端开发(其实是因为公司前端人不够),然后开始接触vue.所以我也只是一只小菜鸟. 首先附上vue的官网:vue官网 然后附上一些常用的vue框架,组件之 ...
随机推荐
- 认识一下MRS里的“中间人”Alluxio
摘要:Alluxio在mrs的数据处理生态中处于计算和存储之间,为上层spark.presto.mapredue.hive计算框架提供了数据抽象层,计算框架可以通过统一的客户端api和全局命名空间访问 ...
- 为啥你写的代码老有大串的if/else?
摘要:控制语句,到底何错之有呢? 本文分享自华为云社区<业务代码如何才能不再写出大串的if/else?>,作者: JavaEdge . 控制结构?没错!你最爱的 if.for都是一类坏味道 ...
- 总结MySQL 的一些知识点:MySQL 连接的使用
MySQL 连接的使用 在前几章节中,我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据. 本章节我们将向大家介绍如何使用 MySQL 的 JOIN ...
- No compiler detected, make sure you are running on top of a JDK instead of a JRE
Java 调 webservice 报如下错误 [2023-11-07 17:01:02.315] ERROR [scheduling-1] ToHisApiImpl.java:106 - No co ...
- VA21 创建报价单
1.前台 报价是提供给客户交付货物或服务的一份文件,客户想要知道产品价格以及装运时间. 事务代码VA21 输入报价单类型和销售组织.分销渠道.产品组 输入售达方和行项目的物料信息,订购数量等信息 输入 ...
- AtCoder Regular Contest 119 (ABC题)
比赛链接:Here A - 119 × 2^23 + 1 注意到 \(2^{60} > 10^{18}\) ,所以我们可以直接枚举 \(0\) ~ \(59\) int main() { ci ...
- AtCoder ABC 181 个人题解(本场GJ x 3)
补题链接:Here A - Heavy Rotation 对 \(N\) 进行奇偶判断,奇数穿 Black .偶数穿 White B - Trapezoid Sum 前 \(n\) 项和公式:\(S_ ...
- Canal 组件简介与 vivo 帐号实践
互联网应用随着业务的发展,部分单表数据体量越来越大,应对服务性能与稳定的考虑,有做分库分表.数据迁移的需要,本文介绍了vivo帐号应对以上需求的实践. 一.前言 Canal 是阿里巴巴开源项目,关于什 ...
- Android内存泄露检测 LeakCanary2.0(Kotlin版)的实现原理
本文介绍了开源Android内存泄漏监控工具LeakCanary2.0版本的实现原理,同时介绍了新版本新增的hprof文件解析模块的实现原理,包括hprof文件协议格式.部分实现源码等. 一.概述 L ...
- 【内核】深入分析内核panic(二)--内核中的少林扫地僧-NMI Watchdog Timer
没有完美的代码 没有完美的人,更没有完美的代码.虽然教科书上说deadlock(死锁)多么不好不好,但是在现实生活中,很难把它完全消灭.假设不小心内核出现了deadlock,可能你得干瞪眼.CPU就在 ...