本篇内容主要讲解“Vue中的插槽slot如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue中的插槽slot如何使用”吧!1.什么是插槽插槽(slot)是 vue 为组件的封装者提供的能
本篇内容主要讲解“Vue中的插槽slot如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue中的插槽slot如何使用”吧!
插槽(slot)是 vue 为组件的封装者提供的能力。允许开发者在封装组件时,把不确定的、希望由用户 指定的部分定义为插槽。
在封装组件时,可以通过 元素定义插槽,从而为用户预留内容占位符。
// 子组件<template><div class="left-container"><h4>Left 组件</h4><hr /><p>子组件的第一个 p 标签</p><!-- 通过 slot 标签,为用户预留内容占位符(插槽) --><slot></slot><p>子组件最后一个 p 标签</p></div></template>// 父组件<template><div class="app-container"><h2>App 根组件</h2><hr /><div class="box"><!-- 渲染 Left 组件和 Right 组件 --><!-- 在使用组件时,为插槽指定具体的内容 --><Left><p>用户自定义内容</p></Left></div></div></template>
vue 官方规定:每一个 slot 插槽,都要有一个 name 名称,如果省略了 slot 的 name 属性,则有一个 默认名称叫做 default。 默认情况下,在使用组件的时候,提供的内容都会被填充到名字为default 的插槽之中如果要把内容填充到指定名称的插槽中,需要使用 v-slot: 这个指令, v-slot: 指令后面要跟插槽的名字。
// 父组件<Left><template v-slot:default><p>用户自定义内容</p></template></Left>// 子组件<template><div class="left-container"><h4>Left 组件</h4><hr /><p>子组件的第一个 p 标签</p><!-- 通过 slot 标签,为用户预留内容占位符(插槽) --><slot name="default"></slot><p>子组件最后一个 p 标签</p></div></template>
v-slot:指令不能直接用在元素身上,必须用在template 标签上 template这个标签,它是一个虚拟的标签,只起到包裹性质的作用,但是,不会被渲染为任何实 质性的html元素
注:没有预留插槽的内容会被丢弃,如果在封装组件时没有预留任何 插槽,则用户提供的任何自定义内容都会被丢弃。
// 子组件<template><div class="left-container"><h4>Left 组件</h4><hr /><p>子组件的第一个 p 标签</p><!-- 封装组件时,没有预留任何插槽 --><p>子组件最后一个 p 标签</p></div></template>// 父组件<template><div class="app-container"><h2>App 根组件</h2><hr /><div class="box"><!-- 自定义的内容会被丢弃 --><Left><p>用户自定义内容</p></Left></div></div></template>
如果在封装组件时需要预留多个插槽节点,则需要为每个 插槽指定具体的 name 名称。这种带 有具体名称的插槽叫做“具名插槽”。
<template><div class="article-container"><!-- 文章标题 --><div class="header-box"><slot name="title"></slot></div><!-- 文章内容 --><div class="content-box"><slot name="content"></slot></div><!-- 文章作者 --><div class="footer-box"><slot name="author"></slot></div></div></template>
在向具名插槽提供内容的时候,我们可以在一个 元素上使用 v-slot 指令,并以 v-slot 的参 数的形式提供其名称
// 父组件中<Article><template #title><h4>静夜思</h4></template><template #content><div><p>我见青山多妩媚,</p><p>料青山见我应如是。</p></div></template><template #author><div>作者:大熊</div></template></Article>
<tbody><!-- 下面的slot 是一个作用域插槽--><slot v-for="item in 1 ist" :user="item"></slot></tbody>
可以使用 v-slot: 的形式,接收作用域插槽对外提供的数据
<my-com-3><!-- 1.接收作用域插槽对外提供的数据--><template v-slot:default=" scope"><tr><!-- 2.使用作用域插槽的数据--><td> {{ scope }}</td></tr></ template></my-com-3>
作用域插槽对外提供的数据对象,可以使用解构赋值简化数据的接收过程
<myone><!-- v-slot: 可以简写成# --><!-- 作用域插槽对外提供的数据对象,可以通过”解构赋值"简化接收的过程--><template #default="{user}"><tr><td> {{user.id}}</td><td> {{user.name}}</td><td> {{user.state}}</td></tr></ template></myone>
到此,相信大家对“Vue中的插槽slot如何使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
--结束END--
本文标题: Vue中的插槽slot如何使用
本文链接: https://www.lsjlt.com/news/353338.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0