| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> JavaScript知识库 -> 第二十四篇 ref 访问子组件 -> 正文阅读 |
|
|
[JavaScript知识库]第二十四篇 ref 访问子组件 |
|
????????父传子通过属性,子传父通过事件,尽管有了 props 和 事件,有的时候你仍可能需要在 javascript 里直接访问一个子组件。通过 ref 方法 可以直接访问子组件的实例或子元素;下面通过一张简单的图来了解一下:
????????那么父子通信的方式应该是父传子props属性,子传父事件$emit,如果还有才是ref,ref 是需要慎用的,上图也讲到了使用 ref 是一种"偷取"孩子信息以及修改的方式,是一种不恰当的行为方式,会导致直接去修改子组件当中的状态,后续出现问题就不能够清楚知道是子组件自己本身影响导致的问题还是由于父组件去修改了子组件当中的信息导致的问题,无法监控而做出判断。 ? ? ? ? 如果以上不能理解没关系,通过下面代码来使用继续了解,先来讲一下 ref 的使用:
? ? ? ? 在讲 v-mode l指令当中我们有个一个案例,即获取input框当中的数据,当时用了通过监听input框中的数据进而获取;再者讲到 v-model 的双向绑定,可以直接拿到input框中的数据;那么这跟 ref 有什么关系?
下面来编写代码和演示效果:
? ? ? ? 在标签上绑定 ref 我们可以获取到它的原生DOM节点,获取到它的原始DOM节点可以干嘛,可以来操作DOM节点,但是不建议去直接的来操作DOM节点;以上是通过 ref 可以获取到input框数据的一个另类方法,不仅可以放置在input,在任何标签上绑定ref,都可以拿到原始DOM节点;
?ref 绑定在标签上可以获取到原始DOM节点,那么绑定到组件上呢?
?下面来编写代码和演示效果:
? ? ? ? ?拿到组件对象有什么用?里面不就有组件的一些状态和方法;那么前面我们在讲父传子和子传父用到下面这张图:
? ? ? ? ?下面针对 ref 来个图,可以进行一个对比;
? ? ? ? 通过图片内容可以知道,父传子和子传父的方式是不需要担心会对原始数据进行修改后无迹可寻,而使用 ref 可以很粗暴的就直接拿到子组件当中的数据,甚至可以进行修改子组件中的数据,一旦多个组件同时使用则会很难知道到底时谁修改了子组件中的数据,不仅是要检查子组件还有检查父组件;
? ? ? ? 通过以上对 ref 的讲解大致知道了使用 ref 绑定在组件上可以直接获取子组件对象,不用经过子组件的同意可以直接拿到子组件中的状态和方法并加以去修改;如果mychild又在其他组件当中去使用,一整改出问题,就不清楚问题出在哪里,使用父传子还是子传父,数据状态出现问题了只需要去检查子组件当中的问题即可,不需要去检查父组件是否去操作修改了我的数据,这样一来使用 ref 去直接操作子组件当中的一些东西是不够妥当的!那么到这里我们就讲了有关于组件通信当中 ref 方法的使用和使用 ref 能做什么和带来什么问题!?
|
|
|
| JavaScript知识库 最新文章 |
| ES6的相关知识点 |
| react 函数式组件 & react其他一些总结 |
| Vue基础超详细 |
| 前端JS也可以连点成线(Vue中运用 AntVG6) |
| Vue事件处理的基本使用 |
| Vue后台项目的记录 (一) |
| 前后端分离vue跨域,devServer配置proxy代理 |
| TypeScript |
| 初识vuex |
| vue项目安装包指令收集 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/2 14:58:16- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |