vue2.0中,$refs对象为什么用驼峰的方式获取不到属性?

我在组件中ref属性获取Dom节点采用kebab-case方式命名,在js获取vue实例的$refs对应的属性是用驼峰的方式获取为什么是undefined,$refs中明明有这个属性。
图片描述

图片描述

图片描述

阅读 8.2k
3 个回答

ref 的 key 和你填的key是一样的, 不会自动转换成驼峰式,如果你要用驼峰式 直接用ref="camelCase" 就可以了

HTML 特性是不区分大小写的。所以,当使用的不是字符串模版,camelCased (驼峰式) 命名的 prop 需要转换为相对应的 kebab-case (短横线隔开式) 命名:

<child my-message="hello!"></child>

需要kebab-case的是prop这种html特性,而不是后面你绑定的值。你已经给节点的ref绑定了'menu-wrapper'名称,当然要通过this.$refs.menu-wrapper去引用啦

大体的意思就是用ref去注册的时候,名字不能再js中自动转换成camelCase,定义的时候就是camelCase就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题