Vue.js 当插槽没有名称时,仅在插槽有内容时显示插槽?
正如所回答的,我们可以检查插槽是否有内容。但我使用的插槽没有名称:Vue.js 当插槽没有名称时,仅在插槽有内容时显示插槽?,vue.js,vuejs2,Vue.js,Vuejs2,正如所回答的,我们可以检查插槽是否有内容。但我使用的插槽没有名称: {{name}} 导出默认值{ 道具:{ 名称:{type:String,默认值:null} }, 计算:{ isValueNull(){ console.log(这是$slots) 返回false; } } } 我是这样使用的: {{someValue} 当组件没有值时,我怎么能不显示它呢?为什么不将该值作为道具传递给map组件呢 <my-map :someValue="someValue" name="someN
{{name}}
导出默认值{
道具:{
名称:{type:String,默认值:null}
},
计算:{
isValueNull(){
console.log(这是$slots)
返回false;
}
}
}
我是这样使用的:
{{someValue}
当组件没有值时,我怎么能不显示它呢?为什么不将该值作为道具传递给map组件呢
<my-map :someValue="someValue" name="someName">{{someValue}}</my-map>
现在您只需检查someValue是否为null:
<div id="map" v-if="!someValue">
...
</div
...
所有插槽都有一个名称。如果您没有明确给它命名,那么它将被称为default
因此,您可以检查$slots.default
不过还是要提醒一下<代码>$slots
不是被动的,因此当它更改时,不会使使用它的任何计算属性无效。但是,它将触发组件的重新渲染,因此如果您直接在模板中使用它或通过某种方法使用它,它应该可以正常工作
下面的示例说明,当插槽的内容更改时,计算属性的缓存不会失效
const child={
模板:`
computedHasSlotContent:{{computedHasSlotContent}}
methodHasSlotContent:{{methodHasSlotContent()}}
`,
计算:{
computedHasSlotContent(){
return!!这个。$slots.default
}
},
方法:{
methodHasSlotContent(){
return!!这个。$slots.default
}
}
}
新Vue({
组成部分:{
小孩
},
el:“#应用程序”,
数据(){
返回{
秀:真的
}
}
})
切换
子文本
是的,我可以,但我只想知道如何访问没有名字的插槽。
<div id="map" v-if="!someValue">
...
</div