Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 当插槽没有名称时,仅在插槽有内容时显示插槽?_Vue.js_Vuejs2 - Fatal编程技术网

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