【发布时间】:2018-08-19 20:51:58
【问题描述】:
我对 Vue 还很陌生,并开始使用 vue-cli 进行项目。
我正在研究基于父级发送的道具的条件渲染。
Home.vue (父级)
<template>
<Header have-banner="true" page-title="Home">
</Header>
</template>
<script>
import Header from "./Header";
export default {
components: {
Header,
},
name: "Home",
data() {
return {
header: "Hello Vue!",
};
},
};
</script>
Header.vue (子)
<template>
<header>
<div v-if="haveBanner == 'true'">
...
</div>
...
</header>
</template>
我查看了另一种 conventional 方法来实现这一点,但 vue-cli 呈现模板的方式不同。
在 HTML 标记中传递道具时,道具 haveBanner 评估为字符串,因此,即使我这样做了:
父母
<Header have-banner="false"></Header>
孩子
<div v-if="haveBanner"`>
...
</div>
<div> 仍会显示,因此,我必须进行显式检查以查看其计算结果是否为 'true'。由于类型强制可能存在问题,我不喜欢这个,并且我收到了类型检查 (===) 的警告:
二进制操作参数类型字符串与类型字符串不兼容
有没有办法让孩子将此道具评估为布尔值,或者让父母在标记中将其作为布尔值传递?
【问题讨论】:
标签: vuejs2