首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vuejs布尔属性(Truthy和Falsy值)

Vuejs布尔属性(Truthy和Falsy值)
EN

Stack Overflow用户
提问于 2022-10-06 23:28:44
回答 1查看 100关注 0票数 1

我正在阅读Vuejs文档,当我在属性绑定部分(链接到特定部分:https://vuejs.org/guide/essentials/template-syntax.html#boolean-attributes)时会感到困惑。

据我所知,在JavaScript中,空字符串 ("")被认为是falsy

但是,在Vuejs Docs中:

<button :disabled="isButtonDisabled">Button</button> 如果isButtonDisabled具有真值,则将包含禁用属性。如果该值是空字符串,则还将包含它,以保持与<button disabled="">的一致性。对于其他falsy值,将省略该属性。

在这里,他们将空字符串计算为一个真值

如果有人有解释的话?这是我们应该注意的事情,或者只是Evan You (Vuejs的创建者)的一个选择,但是基于什么?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-10-07 01:46:48

支持该属性的元素上的空字符串作为已禁用属性的值,将被解释为一个真实的值。这是HTML标准。

代码语言:javascript
复制
<input disabled />
<!-- exact equivalent of... -->
<input disabled="" />
<!-- exact equivalent of (in Vue template) -->
<input :disabled='""' />
<!-- exact equivalent of (in JSX) -->
<input disabled={""} />

当作为绑定JavaScript表达式提供时,Vue将在表达式无效时不包含该属性,除非它的计算结果为空字符串。在这种情况下,Vue将包含该属性,而不更改其值。

为什么会有警告?

因为在JavaScript中,空字符串通常被解释为falsy值,因此他们认为这是潜在的细微bug的来源。

属性的行为不是Vue团队的决定。这是W3C的决定。

所以是的,你可以说这是“正式的”。再没有比这更“正式”的了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73980926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档