【问题标题】:'this.$refs' is always empty in parent component'this.$refs' 在父组件中始终为空
【发布时间】:2018-11-25 04:29:21
【问题描述】:

我正在尝试对ref 进行标准实现,以便可以将子元素插入到我的InfoBox 中。但是,无论我似乎将其作为“参考”元素放置,都不会出现在我的 InfoBox 组件中。日志调用的结果始终为{} undefined

点击处理程序用于测试计时问题,因为使用 createdmounted 似乎是一个常见问题。

<InfoBox
  v-if="waitingForCode">
  <p ref="infoboxcontent">A 7-digit verification code has been sent.</p>
</InfoBox>

<template>
  <div
    class="info-box"
    @click="clicked" >
    {{ this.$refs.infoboxcontent }}
  </div>
</template>

<script>
export default {
  name: 'InfoBox',
  mounted() {
    console.log(this.$refs, this.$refs.infoboxcontent)
  },
  methods: {
    clicked() {
      console.log(this.$refs, this.$refs.infoboxcontent)
    }
  }
}
</script>

<style scoped>
  // some style
</style>

我开始认为我从根本上误解了“ref”属性的用法,因为这似乎是一个微不足道的例子。任何帮助将不胜感激。

【问题讨论】:

  • 如果你认为你在应该使用插槽的地方使用 refs

标签: javascript vue.js vuejs2 ref


【解决方案1】:

refVue 特殊属性用于从您的当前组件模板引用一个 DOM 节点(或子组件)。

如果您想将一些内容传递给自定义组件,这是&lt;slot&gt; Vue 内置组件的用例。

【讨论】:

  • 还有:关于 ref 注册时间的重要说明:因为 ref 本身是由 render 函数创建的,所以您无法在初始渲染时访问它们。 documentation
猜你喜欢
  • 2019-10-22
  • 1970-01-01
  • 2017-04-11
  • 2018-10-02
  • 2020-07-18
  • 1970-01-01
  • 2018-02-15
  • 2015-09-12
  • 2021-06-18
相关资源
最近更新 更多