Vue 3 中的插槽(Slots)用法

这篇具有很好参考价值的文章主要介绍了Vue 3 中的插槽(Slots)用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

插槽(Slots)是 Vue 组件中一种非常有用的功能,用于在父组件中向子组件传递内容。Vue 3 引入了 <script setup> 语法,使得组件的写法更加简洁和易读。在本篇博客中,我们将探讨在 Vue 3 中使用插槽的不同方式,包括默认插槽、具名插槽以及作用域插槽。

默认插槽

默认插槽是 Vue 组件中最简单的插槽用法。它允许我们在父组件中传递内容到子组件,并在子组件中使用 <slot> 标签来接收这些内容。

父组件模板:

<template>
  <ChildComponent>
    <p>这是通过默认插槽传递的内容</p>
  </ChildComponent>
</template>

子组件模板:

<template>
  <div>
    <slot name="header"></slot>
    <slot name="footer"></slot>
  </div>
</template>

作用域插槽

作用域插槽允许父组件向子组件传递数据,并在子组件中使用 v-slot 指令来接收这些数据。

父组件模板:

<template>
  <ChildComponent>
    <template v-slot="{ message }">
      <p>{{ message }}</p>
    </template>
  </ChildComponent>
</template>

子组件模板:

<template>
  <div>
    <slot :message="data.message"></slot>
  </div>
</template>

<script setup>
const data = {
  message: "这是通过作用域插槽传递的数据",
};
</script>

在使用作用域插槽时,父组件可以向子组件传递数据,子组件使用 v-slot 指令来接收数据。我们可以在子组件中通过 slot 标签的属性来访问这些数据。

栗子:

父组件:

<template>
  <AboutView title="没事">
    <img src="" alt="">
//省略地址
  </AboutView>
  <AboutView title="还行" :listData="games">
    <ul v-for="(game,index) in games" :key="index">
      <li>{{ game }}</li>
    </ul>
  </AboutView>
  <AboutView title="优势" >
    <video src="" controls style="width: 200px;height: 200px;"></video>
  </AboutView>
</template>
<script setup>
import AboutView from './views/AboutView.vue';
const games=["英雄联盟","永劫无间","PUBG"]
</script>

子组件:

<script setup>
import { defineProps } from "vue";

const props = defineProps(['title']);
</script>
<template>    
    <div>
        <!-- 使用props.title来显示标题 -->
        <h2>{{ title }}</h2>
        <!-- 其他组件内容 -->
        <slot></slot>
  </div>
</template>

 Vue 3 中的插槽(Slots)用法,Vue——初恋,vue.js,javascript,前端

 

总结起来,在 Vue 3 中,插槽的使用方式与 Vue 2 中有一些不同。使用 <script setup> 语法可以简化组件的写法,但在定义插槽内容时,我们需要使用 v-slot# 来指定具名插槽或作用域插槽。而在子组件中,使用 slot 标签来接收插槽内容,并可以通过 slot 标签的属性向子组件传递数据。文章来源地址https://www.toymoban.com/news/detail-614167.html

到了这里,关于Vue 3 中的插槽(Slots)用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue模拟el-table演示插槽用法

    很多人知道插槽分为三种,但是实际到elementui当中为什么这么用,就一脸懵逼,接下来就跟大家聊一聊插槽在elementui中的应用,并且自己写一个类似el-table的组件 vue的slot分为三种::匿名插槽,具名插槽, 作用域插槽,主要作用:让父组件可以向子组件指定位置插入 html 结构

    2024年02月06日
    浏览(34)
  • Vue.js 插槽详解

    插槽允许我们在父组件中定义子组件的模板内容,从而实现动态组件的功能。具体来说,插槽可以用于以下场景: 父组件向子组件传递内容,例如按钮、表单、图片等。 子组件需要显示不同的内容,例如列表、选项卡、面包屑等。 Vue.js 提供了三种类型的插槽:具名插槽、默

    2024年01月20日
    浏览(42)
  • Vue中的ajax和slot插槽

    在前后端分离项目中,解决跨域问题是一个常见的需求。下面列举了几种常用的跨域解决方法: CORS(跨域资源共享):这是最常用且推荐的跨域解决方案。通过在服务器端设置响应头,允许特定的源(域名、协议、端口)访问资源。在后端服务器上进行配置即可实现跨域请

    2024年02月10日
    浏览(44)
  • 前端Vue入门-day05-自定义指令、插槽、路由入门

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 自定义指令  基本语法 (全局局部注册) 全局注册  局部注册 指令的值  v-loading 指令封装 插槽 默认插槽 后备内容(默认值)  具名插槽  作用域插槽  路由入门 单页应

    2024年02月13日
    浏览(37)
  • Vue中的Ajax 配置代理 slot插槽

    本案例需要下载 axios 库 npm install axios 配置参考文档 Vue-Cli devServer.proxy vue.config.js 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。你也可以使用 package.json 中的 vue 字段,但是注意这种写法需要你严格遵照

    2024年02月09日
    浏览(46)
  • vue前端开发自学,插槽练习第二次,name属性的使用

    vue前端开发自学,插槽练习第二次,name属性的使用!可以使用name属性,来自定义一个名字,这样,就可以在一个组件内同时出现多个插槽的内容了。在子组件内接收的时候,很简答,只需要在slot标签里面加上name=“mz”; 下面看代码。 这个内容是app.vue入口文件的内容源码。下面

    2024年02月02日
    浏览(52)
  • vue3中setup的两个参数 props,context (attrs,emit,slots),vue3中的双向数据绑定自定义事件emit和v-model

    目录 setup函数 props参数 案例 第一种写法(用setup函数的方式):  第二种方法(语法糖形式即setup写入script标签中)也可以传值,  context (attrs,emit,slots) vue3中的双向数据绑定自定义事件emit和v-model emit自定义事件 v-model 有两个参数分别是 props,context 即 props参数是一个 对象 ,

    2024年02月10日
    浏览(42)
  • Vue前端 更具router.js 中的meta的roles实现路由卫士,实现权限判断。

    参考了之篇文章 1、我在登陆时获取到登录用户的角色名roles,并存入sessionStorage中,具体是在login页面实现,还是在menu页面实现都可以。在menu页面实现,可以显得登陆快一些。 2、编写router.js,注意,一个用户可能有多个角色。 这里有个bug 我们的roles存在sessionStorage中,关闭

    2024年02月13日
    浏览(44)
  • vue3中如何使用el-tooltip中的插槽达到换行效果

    el-tooltip的content属性中的内容可以使用插槽来替换 话不多说,直接上代码 最后放上效果对比图,如果觉得有帮到你,可以给我一个赞吗😜 没换行前的效果 换行后的效果

    2024年02月10日
    浏览(52)
  • 已配置vue.config.js中的proxy代理,前端本地环境仍然请求后端出现跨域报错

    已配置vue.config.js中的proxy代理,前端本地环境仍然请求后端出现跨域报错 已配置vue.config.js中的proxy代理,前端本地环境仍然请求后端出现跨域报错 控制台仍然出现cors禁止报错,接口调不通 配置proxy代理解决跨域问题的原理是: 前端工程本地环境会启动一个 express 或 koa 的

    2024年02月01日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包