关于Vue3中插槽的一些使用
admin
2024-03-26 17:22:49

适用场景(本人推测):

**场景1、多次的运用同一个组件,需要在组件的某个固定位置装在不用的样式标签,可以使用匿名插槽,单纯的为了用而用,不需要太多的花里胡哨的操作。

父组件index.vue


子组件B.vue


**场景2、也是多次使用同一个组件,但是需要在组件的不同位置装载不同的样式标签,这种情况 下可以使用具名插槽

父组件index.vue


子组件B.vue

***场景3、***你想利用X组件的数据,同时又要展示不同的样式,就比如说用户的个人信息,你想在A组件展示这个样式,想在B组件展示那个样式,可是你你不想写更多的组件,再发送数据,想偷懒,那就要用到作用域

一定要看这段话:使用作用域插槽有两种方法,一种是通过具名插槽的形式去使用,另一种是通过匿名插槽的形式使用,前者更加简单。

~~

看清楚了这是单独使用一个匿名作用域插槽是没有问题,但是你想使用两个,对不起,真的会有问题

~~
父组件index.vue

 -->

A组件


这是使用两个匿名作用域插槽

重要的话说在前面:你能来找个,说明已经踩了很多坑了,那么恭喜你,我也踩了很多。然后我找到了方法,当然这是使用匿名的。如果你没有碰到这个坑,不要去踩了,我付出了将近三个小时的时间才勉强找到一个稍微合理的方法,还没有完全解决。直接跳下面看具名插槽作用域
问题1:当你满心欢喜的拿到了插槽传过来的数据,你会发现,这玩意是一个proxy对象
问题2:当你想使用两个templat的时候发现只能使用一个,其实这个问题我也没办法,hhh,我解决的是数据的问题。我只能控制展示哪块数据,并不能够两块都展示,都展示还是得具名插槽。有一点可取之处,我拿到了两个插槽得数据,还发现了vue2中的管道符在vue3中的用法。
问题3:不允许写两个相同的匿名的template标签
A组件
ps:其中的data1和data2自己随便定义,引用的时候自己也得记得一样


父组件

    { data.id }}++{{ data.name }} -->{ data.id }}++{{ data.name }} -->

具名作用域插槽:非常简单(本人表示不想说话了,我就是想实现匿名作用域插槽,才有前面的,你就用这个具名作用域插槽就好了)

A组件


父组件

***场景4、***如果你想整花活,想随意的变更插槽内容,有A、B、C三个插槽,你想把A、B两插槽的内容进行互换,那么可以使用动态插槽

OS:一插槽不能两用,已经试过,已经有内容的插槽不能够更改了,除非你把原有的插槽空出来。

父组件index.vue



B组件


相关内容

热门资讯

原创 比... 每次去餐馆必点的干炸里脊,结账时总被价格吓一跳?悄悄告诉你,这道看似讲究的硬菜,在家做成本不到20块...
原创 韩... 辣炒年糕是韩国街头最具代表性的美食,甜辣入味,软糯Q弹,一口下去,满是浓郁的韩式风味,无论是作为小吃...
原创 豆... “老李,你这血脂怎么降得这么快?最近吃了什么灵丹妙药?”体检中心里,医生一边翻着报告,一边抬头问。6...
清明前后,建议使劲吃3菜,一周... 清明前后,建议使劲吃3菜,一周吃3回,养肝补血润肠! 清明前后,建议使劲吃下面分享的3种应季菜。 ...
等待21年,生煎馒头排队到拐弯... 在快节奏的生活中,我们常常忽视了那些曾经陪伴我们成长的美味。想必你也有这样的经历,久违的味道再次唤醒...