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

Vue 2.6连字符属性命名的作用、原理及props传递异常答疑

问题原因分析

这是Vue 2模板语法与HTML特性的机制差异导致的:

  • 静态属性(不带冒号):HTML本身大小写不敏感,当你在父组件模板里写cssClass="cssClassName"时,浏览器会自动把属性名转成全小写的cssclass,但子组件的prop是驼峰命名的cssClass,两者无法匹配,所以子组件接收不到值。
  • 动态绑定属性(带冒号)::videoSource="selectedAsset.videoSource"属于Vue的模板语法,并非原生HTML属性,Vue会直接识别驼峰命名,不会被浏览器转成小写,因此能正确匹配子组件的videoSourceprop,传值自然正常。
实现属性与props命名统一的方案

有两种常用方式:

  • 方案1:静态值用短横线命名属性
    保持子组件prop的驼峰命名,在父组件模板里用短横线形式传递静态值,Vue会自动把css-class映射到cssClassprop:
    <VideoComponent
      v-if="selectedAsset.type == 'video'"
      css-class="cssClassName"
      :videoSource="selectedAsset.videoSource"
    />
    
  • 方案2:静态值也用动态绑定
    如果想在模板里统一用驼峰名,给静态值加上冒号,用字符串字面量传递,这样Vue会直接处理驼峰属性名:
    <VideoComponent
      v-if="selectedAsset.type == 'video'"
      :cssClass="'cssClassName'"
      :videoSource="selectedAsset.videoSource"
    />
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:35:23