Attributes

默认情况下,模板的属性,与其对应的 HTML 属性完全相同。

  1. <div class="foo">
  2. <button disabled>can't touch this</button>
  3. </div>

与 HTML 一样,属性值可以不加引号。

  1. <input type=checkbox>

属性值可以包含javascript的表达式:

  1. <a href="page/{p}">page {p}</a>

或者,属性值本身就是javascript的表达式:

  1. <button disabled={!clickable}>...</button>

某些javascript表达式可能会引起常规的 HTML 语法高亮失效,所以可以使用引号(来解决该问题),使用引号不会影响表达式的正常解析

  1. <button disabled="{number !== 42}">...</button>

当属性名和表达式相同(name={name})时,可以用{name}来代替。

  1. <!-- These are equivalent -->
  2. <button disabled={disabled}>...</button>
  3. <button {disabled}>...</button>

属性展开特性(Spread attributes)可以将多个属性和值一次传递给元素或者组件(类似JSX)

元素或组件可以具有多个展开的属性,其中可以包含常规的属性。

  1. <Widget {...things}/>