默认情况下,模板的属性,与其对应的 HTML 属性完全相同。
<div class="foo">
<button disabled>can't touch this</button>
</div>
与 HTML 一样,属性值可以不加引号。
<input type=checkbox>
属性值可以包含javascript
的表达式:
<a href="page/{p}">page {p}</a>
或者,属性值本身就是javascript
的表达式:
<button disabled={!clickable}>...</button>
某些javascript
表达式可能会引起常规的 HTML 语法高亮失效,所以可以使用引号(来解决该问题),使用引号不会影响表达式的正常解析
<button disabled="{number !== 42}">...</button>
当属性名和表达式相同(name={name}
)时,可以用{name}
来代替。
<!-- These are equivalent -->
<button disabled={disabled}>...</button>
<button {disabled}>...</button>
属性展开特性(Spread attributes)可以将多个属性和值一次传递给元素或者组件(类似JSX)
元素或组件可以具有多个展开的属性,其中可以包含常规的属性。
<Widget {...things}/>