当前位置: 首页 > news >正文

组件通信$refs | $parent |$root

父组件传值子组件用Props

子组件传值父组件用$emit

父组件直接还可以直接取子组件的值用$refs

父组件直接从子子组件中获取值$refs

不建议使用会增加组件之间的耦合度,一般用于第三方插件的封装

ref如果绑定在dom节点上,拿到的就是原生dom节点。
ref如果绑定在组件上,拿到的就是组件对象,可以实现通信功能

父组件

<template><div><button v-on:click="handelClick">打印看看</button><ChildModule ref="mychild"></ChildModule><input type="text" ref="myinput"><div type="text" ref="mydiv">wowo</div></div>
</template>
<script>
import ChildModule from "./components/ChildModule.vue" //导入ChildModule组件模板
export default {inheritAttrs: false,data() {return {}},components: {ChildModule: ChildModule //注册局部子组件ChildModule:也可以写成ChildModule:ChildModule},methods: {handelClick() {console.log(this.$.refs.myinput);console.log(this.$.refs.mydiv);console.log(this.$.refs.mychild);this.$.refs.myinput.value="abc";this.$.refs.mydiv.style.background='red'; //this.$refs.mychild.user.name="李四"; //直接获取子组件的user.name值并重新赋值}}
}
</script>

子组件

<template><div>{{user.name}}</div>
</template>
<script>
export default {data(){return{user:{name:"张三",age:19,emial:"abc@123.com"}}},methods:{}
}
</script>

子组件直接从父组件中获取值$parent

子组件直接从根组件中获取值$root

我有三个组件关系如下:根组件app.vue中有一个AChild组件,AChild组件中有一个BChild组件

根组件app.vue

<template><div><AChild></AChild></div>
</template>
<script>
import AChild from "./components/AChild.vue" //导入AChild组件模板
export default {inheritAttrs: false,data() {return {name: "我是根组件name"}},components: {AChild},methods: {}
}
</script>

AChild组件

<template><div><BChild></BChild></div>
</template>
<script>
import BChild from "./BChild.vue" //导入BChild组件模板
export default {inheritAttrs: false,data() {return {name: "我是A组件name"}},components: {BChild},methods: {}
}
</script>

BChild组件

<template><div><button @click="handelClick">点我</button></div>
</template>
<script >
export default{inheritAttrs:false,methods:{handelClick(){console.log( this.$parent.name); //获取父组件的nameconsole.log( this.$parent.$parent.name); //获取父组件的父组件的nameconsole.log( this.$root.name); //获取根组件的name(这个直接取最上级组件的值)}}
}
</script>

http://www.lryc.cn/news/204437.html

相关文章:

  • springboot中@Async的使用
  • 学C++从CMake学起
  • lv8 嵌入式开发-网络编程开发 20 域名解析与http服务实现原理
  • 只要路由器有WPS按钮,佳能打印机连接到Wi-Fi网络的方法就很简单
  • Cmake输出git内容方式
  • 实现多余内容变成省略号
  • WAL 模式(PostgreSQL 14 Internals翻译版)
  • 2023年信息科学与工程学院学生科协第二次软件培训
  • 渗透测试tomcat错误信息泄露解决办法
  • notes_NLP
  • 内存分段、分页
  • Python-pptx教程之一从零开始生成PPT文件
  • k8s 使用ingress-nginx访问集群内部应用
  • 企业数据泄露怎么办?
  • GoLong的学习之路(一)语法之变量与常量
  • Go-Python-Java-C-LeetCode高分解法-第十一周合集
  • 封装axios的两种方式
  • 【自然语言处理】NLTK库的概念和作用
  • Python爬虫如何解决提交参数js加密
  • 云数据库及RDS数据库介绍
  • c语言进阶部分详解(详细解析自定义类型——枚举,联合(共用体))
  • 使用 Requests 库和 PHP 的下载
  • ConcurrentHashMap底层具体实现知道吗?实现原理是什么
  • Go语言“Go语言:掌握未来编程的利器“
  • 达梦管理工具报错“结果集不可更新,请确认查询列是否出自同一张表,并且包含值唯一的列。”
  • TensorFlow2从磁盘读取图片数据集的示例(tf.keras.utils.image_dataset_from_directory)
  • Unity开发过程中的一些小知识点
  • 大语言模型(LLM)综述(一):大语言模型介绍
  • 在Ubuntu上安装和挂载NFS
  • Python 实现的简易数据库管理系统 (DBMS)