Skip to content

文本与属性

TIP

文本插值可以使用 ${...}{{ ... }}。新项目推荐在宏组件里使用 ${...},因为它直接引用当前 TypeScript 作用域。

ts
const name = useRef("Elf");
export const Hello = defineHtml(` <p>Hello ${name}</p> `);

属性绑定

ts
defineHtml(`<button :disabled=${disabled}>保存</button>`);

布尔属性在值为 falsenullundefined 时会移除。

Property 绑定

需要设置 DOM property 时使用 .prop

ts
defineHtml(`<input .value=${value} />`);

TIP

复杂对象建议走 property,而不是 attribute。

Attribute 与 Property

:title=${title} 写入 HTML attribute,浏览器看到的是字符串;.value=${value} 直接写 DOM property,保留对象、数组、函数和布尔值的真实类型。普通字符串、ARIA 属性和 data-* 优先 attribute;表单当前值、复杂 props 与对象数据优先 property。

文本安全

普通文本绑定会写入 textContent。需要插入 HTML 时使用 v-html,并自行保证内容可信。