发布时间:2023-05-07 文章分类:WEB开发, 电脑百科 投稿人:王小丽 字号: 默认 | | 超大 打印

<slot> 插槽:让父组件可以想子组件指定位置插入html结构 也是一种组件间通信的方式

适用于 父组件====>子组件

分类: 默认插槽 具名插槽 作用域插槽

默认插槽

Vue插槽

Vue插槽

我们首先书写一个组件,然后进行调用查看效果:

Vue插槽

此时,如果我们要想在插件中书写文本或者html标签体,就需要使用Vue的solt插槽进行解析

比如:

Vue插槽

此时我们打开浏览器查看效果

Vue插槽

页面没有报错和刚才相比也没有任何变化,此时要想让img标签显现出来我们需要在catgory组件内部使用插槽

Vue插槽

然后保存重新编译后再打开浏览器查看效果

Vue插槽

此时图片显示在我们书写img的第一个category组件上

具名插槽

具名插槽顾名思义就是具有名字的插槽

父组件指明放入子组件的哪个插槽 slot='插槽名' 如果是template 可以写成 v-slot:插槽名

当我们在插件中放入多个img标签,并想讲每个标签都放入不同的插槽时,就需要用到具名插槽

首先,我们用默认插槽试试看会有什么不一样:

Vue插槽

 先在插件中书写两个img标签

再在插件内部写入两个插槽

Vue插槽

打开浏览器观看效果

Vue插槽

会发现图片重复了,此时我们虽然写入了两个插槽,但是我们没有规定img标签都该放入哪个插槽,所以vue默认每个插槽都会放一遍我们插件中的标签

此时我们使用具名插槽再试试效果:

Vue插槽

Vue插槽

此时再查看效果

Vue插槽

作用域插槽

scope 用于父组件往子组件插槽放的html结构接收子组件的数据

数据在组件的自身 但根据数据生成的结构需要组件的使用者来决定

前面我们的demo中显示的数据都是在组件的使用者APP中,此时我们换一种写法,当我们需要的数据在子组件Category中时,这个时候我们该如何将数据显示出来

Vue插槽

Vue插槽

打开浏览器查看效果

Vue插槽

控制台直接报错,因为此时我们的数据是在Category中的,我们在APP组件中是无法使用的,所以现在我们可以使用作用域插槽将子组件的数据传递给父组件来使用

Vue插槽

Vue插槽

先用 插值语法绑定数据看看传递过来的数据是什么样的

Vue插槽

 可以看到数据的结构,然后我们可以直接进行数据的绑定

Vue插槽

 Vue插槽

可以看到数据可以成功的绑定