Vue中的$refs 用法
  Lpsr6E2mxSUl 2023年12月23日 30 0

Vue中的$refs原理涉及到Vue实例的生命周期、虚拟DOM以及一些底层的JavaScript原理。

  1. Vue实例的生命周期: 当Vue实例被创建时,它会经历一系列的生命周期钩子,包括beforeCreatecreatedbeforeMountmounted等。在mounted生命周期钩子中,Vue实例的模板已经渲染到真实的DOM上,此时$refs会被填充。
  2. 模板编译: Vue的模板编译过程将模板转换为渲染函数,这个渲染函数生成虚拟DOM。在编译过程中,识别到有ref属性的元素或组件,Vue会在实例的$refs对象上创建相应的引用。
  3. 虚拟DOM与真实DOM关联: Vue使用虚拟DOM来高效地更新实际的DOM。当模板渲染到真实DOM上后,Vue会建立虚拟DOM与真实DOM的关联关系。这时,ref属性的元素或组件的引用被保存在Vue实例的$refs对象上。
  4. **Vue中的$refs 用法_Vuerefs对象已经被填充,可以通过this.$refs`访问这些引用。

举个例子,如果有以下模板代码:

<template>
  <div>
    <my-component ref="md"></my-component>
    <button ref="myButton">Click me</button>
  </div>
</template>

mounted钩子执行后,this.$refs将包含两个引用:mdmyButton,分别指向<my-component>组件实例和<button>元素。

总的来说,$refs的原理涉及Vue实例生命周期、模板编译、虚拟DOM和真实DOM的关联过程。这使得我们能够在Vue组件中方便地访问子组件或DOM元素的引用。

举个例子

Vue中的$refs 用法_Vue_02

在Vue中,$refs是一个特殊的对象,用于访问在模板中使用ref属性声明的子组件或DOM元素。而你提到的$refs.md中的.md可能是指某个具体的子组件或者DOM元素的引用。

proxy.$refs.md.$img2Url(pos, res.data): 使用 Vue 中的 $refs 来获取名为 md 的子组件,并调用其 $img2Url 方法,传递位置 (pos) 和上传成功的数据 (res.data)。

proxy.$modal.msgSuccess("上传成功"): 使用 Vue 实例中的 $modal 对象,调用 msgSuccess 方法,显示上传成功的提示消息。

假设你在模板中有这样的代码:

<template>
  <div>
    <my-component ref="md"></my-component>
  </div>
</template>

在这个例子中,$refs.md将会是对<my-component>组件实例的引用。你可以通过这个引用来访问和操作<my-component>组件的属性和方法。

如果你的代码中有其他使用ref属性的元素或组件,那么$refs对象将包含对这些元素或组件的引用,每个引用的键名就是ref属性的值。


欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。


Don’t reinvent the wheel, library code is there to help.

文章来源:刘俊涛的博客


若有帮助到您,欢迎点赞、转发、支持,您的支持是对我坚持最好的肯定(_)

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月23日 0

暂无评论

推荐阅读
Lpsr6E2mxSUl