关于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组件


相关内容

热门资讯

国庆黄金周景区情况:大同古城半... 文| 芙昕 编辑 | 芙昕 国庆长假,很多人都计划着出门走走,可一到了那些热门景点,看到的往往不是山...
来大东北一共分两步:先“冷藏”... 还在被“东北=冰窖”的刻板印象吓退? 南方的“小土豆”们 别急着裹紧小棉袄 这个冬天 让“气候缓冲带...
第三届“长城之约”活动在河北涞... 11月15日,第三届"长城之约"全球推广活动暨世界文化遗产对话15日在河北省保定市涞源县启幕。 本次...
巴厘岛:时光在此停驻 (自由行... 曾几何时,世人只知巴厘岛而不知印尼。巴厘岛的美太过耀眼,以至于人们常常忘记——它只是印尼万千岛屿中最...