vue插槽面试题_Vue 的slot插槽 及一个奇怪的面试题

slot 插槽,主要用来做内容分发

主要有三种操作方式:

默认插槽

具名插槽

作用域插槽

默认插槽

没有太多的逻辑,就是把父组件的内容分发到子组件的指定位置

// 父组件

{{msg}}

// 子组件

我是作用域插槽的子组件

默认内容

具名插槽

这里就是加了一个指向,不同的内容分发到不同的指定位置

// 父组件

父组件header内容
父组件footer内容

// 子组件

我是作用域插槽的子组件

作用域插槽

就是将子组件的数据反馈到父组件,父组件对数据进行编辑,然后在插入到子组件指定位置

// 父组件

{{item}}

// 子组件

面试题:你如何能判断到子组件的插槽是否有内容?

乍一听一脸懵逼,感觉怎么会有这种问题。但是仔细想的话,确实是有这种业务场景的,只是我没有涉及到过。现在想到了一个方法,就是在插槽内定义一个默认dom,如果赋值了,dom就获取不到。

我认为从优先级上讲,是否有内容本身应该在父组件调用插槽的时候判断,因为那时是有原始对象的,当然知道有没有值了。当然,这就要求子组件生产随机id了。

当然,这是我大概找到的思路,因为没有真实的场景,所以暂时想出一个思路,场景是比较单纯的。之后如果遇到真实场景了,再看看这个思路是否可行吧,或者是否有别的办法。

// 父组件

{{msg}}

// 子组件

// 子组件js

mounted () {

var dom = document.querySelector('#defaultId')

if (!dom) {

console.log('有内容')

} else {

console.log('无内容')

}

},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值