HTML 中的 attribute 名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符。这意味着当你使用 DOM 中的模板时,camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名) 命名:
| Vue.component('blog-post', { |
| |
| props: ['postTitle'], |
| template: '<h3>{{ postTitle }}</h3>' |
| }) |
| |
| <blog-post post-title="hello!"></blog-post> |
| <!DOCTYPE html> |
| <html lang="zh"> |
| |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Prop 的大小写 (camelCase vs kebab-case)</title> |
| <script src="./vue.js"></script> |
| </head> |
| |
| <body> |
| <div id="hzh"> |
| <hzh-component hzh-title="黄子涵"></hzh-component> |
| </div> |
| |
| <script> |
| Vue.component('hzh-component', { |
| |
| props: ['hzhTitle'], |
| template: '<h3>{{ hzhTitle }}</h3>' |
| }) |
| |
| new Vue({ |
| el: '#hzh' |
| }); |
| </script> |
| </body> |
| |
| </html> |

重申一次,如果你使用字符串模板,那么这个限制就不存在了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」