黄子涵

Prop 的大小写 (camelCase vs kebab-case)

HTML 中的 attribute 名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符。这意味着当你使用 DOM 中的模板时,camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名) 命名:

Vue.component('blog-post', {
  // 在 JavaScript 中是 camelCase 的
  props: ['postTitle'],
  template: '<h3>{{ postTitle }}</h3>'
})
<!-- 在 HTML 中是 kebab-case 的 -->
<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', {
      // 在 JavaScript 中是camelCase 的
      props: ['hzhTitle'],
      template: '<h3>{{ hzhTitle }}</h3>'
    })

    new Vue({
      el: '#hzh'
    });
  </script>
</body>

</html>

image

重申一次,如果你使用字符串模板,那么这个限制就不存在了。

posted @ 2022-06-04 15:26  黄子涵  阅读(48)  评论(0编辑  收藏  举报