You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js疑问:this.$refs.变量返回undefined,直接用值却正常?

问题原因解释

这是因为你搞错了JavaScript对象属性的访问方式:

  • this.$refs.anchor里的anchor是固定属性名,Vue会直接去$refs对象里找名为anchor的属性,但你的模板里根本没有ref="anchor"的元素,所以返回undefined。
  • 你传入的参数anchor是一个变量,值为字符串"whoAreWe",要通过变量名访问对象属性,必须用方括号语法:this.$refs[anchor]。这种写法会先解析变量anchor的值,再去$refs里找对应名称的属性,也就是等价于this.$refs['whoAreWe'],和你直接写this.$refs.whoAreWe效果一致,所以能正确拿到DOM元素。

修正后的方法代码应该是这样:

scrollTo: function(anchor) {
  console.log(anchor); // "whoAreWe"
  console.log(this.$refs[anchor]); // 能拿到对应的DOM元素
  console.log(this.$refs.whoAreWe); //the DOM div "whoAreWe"
}

内容的提问来源于stack exchange,提问作者LNFullStack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:52:10