iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue的slot组件如何用
  • 551
分享到

vue的slot组件如何用

2023-07-04 14:07:40 551人浏览 安东尼
摘要

这篇文章主要介绍“Vue的slot组件如何用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue的slot组件如何用”文章能帮助大家解决问题。前言slot可以在子组件中开启插槽,在父组件引用该组建时

这篇文章主要介绍“Vue的slot组件如何用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue的slot组件如何用”文章能帮助大家解决问题。

前言

slot可以在子组件中开启插槽,在父组件引用该组建时,可以定义这个插槽内要展现的功能或模块。

1.单个slot

子组件中在相应位置写slot标签,父组件在引用子组件时,在子组件标签内写要插入插槽的元素;

还可以设置slot在父组件没有设置插槽时,子组件的插槽默认显示内容;

父组件.vue

<template> <div class="home"> <child-componment>  <p>  这是父组件的slot替代内容!  </p> </child-componment> </div></template><script>import childComponment from '@/components/childComponment.vue'export default { name: "home", components:{ childComponment }, data(){ return { message: '' } }};</script>

子组件childComponment.vue

<template> <div class="childComponment"> <h3>这是子组件childComponment!</h3> <slot>  <span >如果父组件没有插入内容,我这样可以设置默认的显示内容</span> </slot> </div></template><script>export default { name: "childComponment", data(){ return {  message: '' } }};</script>

2.具名slot(同时使用多个插槽)

给slot指定一个名称,可以分发多个slot插槽,但是只能有一个无名slot;

父组件的slot插槽内容,不写slot="xxx"的都会插到子组件的无名slot中;

如果没有指定无名slot(默认slot),父组件内多余的内容将会被抛弃。

<template> <div class="home"> <child-componment>  <h2 slot="header">  父组件的header  </h2>  <h7 slot="footer">父组件的footer</h7>    <h7>父组件的无名slot-1</h7>  <p>  父组件的无名slot-2  </p> </child-componment> </div></template><script>import childComponment from '@/components/childComponment.vue'export default { name: "home", components:{ childComponment }, data(){ return {  message: '' } }};</script>

子组件

<template> <div class="childComponment"> <span>这是子组件childComponment的正常内容!</span> <div class="header">  <slot name="header">  <span >子组件默认header-slot</span>  </slot> </div> <div class="container">  <!-- 如果没有指定无名slot(默认slot),父组件内多余的内容将会被抛弃 -->  <slot>  <span >子组件默认无名slot</span>  </slot> </div> <div class="footer">  <slot name="footer">  <span >子组件默认footer-slot</span>  </slot> </div> </div></template><script>export default { name: "childComponment", data(){ return {  message: '' } }};</script><style scoped>.childComponment{ font-size: 16px;}.header{ height: 100px; border:1px solid red; color: red;}.container{ height: 500px; border: 1px solid black; color: black;}.footer{ height:100px; border: 1px grey solid; color: grey;}</style>

vue的slot组件如何用

3.作用域插槽

<template> <div class="home"> <child-componment>  <template slot-scope="slotProps">  <!-- 这里显示子组件传来的数据 -->  <p>{{slotProps}}</p>  </template> </child-componment> </div></template><script>import childComponment from '@/components/childComponment.vue'export default { name: "home", components:{ childComponment }};</script>

子组件

<template> <div class="childComponment"> <span>这是子组件childComponment的正常内容!</span> <div class="container">  <!-- 如果没有指定无名slot(默认slot),父组件内多余的内容将会被抛弃 -->  <slot msg="子组件信息" slotData="子组件数据"></slot> </div> </div></template>

Tips:

作用于插槽也可是具名插槽

案例:列表组件

这是作用于插槽使用最多的案例,允许组件自定义应该如何渲染组件的每一项。

<template> <div class="about"> <h2>This is about page</h2> <my-list :books="books"> <template slot="bookList" slot-scope="myListProps">  <li>{{myListProps.bookName}}</li> </template> </my-list> </div></template><script>import myList from '@/components/myList.vue'export default { components:{ myList }, data(){ return {  books: [  {name: 'CSS揭秘'},  {name: '深入浅出nodejs'},  {name: 'javascript设计模式开发实战'}  ] } }}</script>

子组件myList.vue

<template> <div class="myList"> <h2>This is myList page</h2> <ul> <slot name="bookList" v-for="book in books" :bookName="book.name"></slot> </ul> </div></template><script>export default { props:{ books:{  type: Array,  default: function(){  return []  } } }, mounted(){ console.log(this.books) }}</script>

其实上面的案例可直接在父组件中for循环就好,此处只是作为演示slot的作用域插槽;

实际开发中作用域插槽的使用场景主要为:既可以复用子组件的slot,又可以使slot内容不一致。

4.访问slot

vue2.0提供了$slot方法来访问slot

此处代码以**“具名slot(同时使用多个插槽)”**的代码为例,修改一下子组件childComponment.vue

export default { name: "childComponment", data(){ return {  message: '' } }, mounted(){ let header = this.$slots.header let main = this.$slots.default let footer = this.$slots.footer console.log(header) console.log(main) console.log(footer) console.log(footer[0].elm.innerhtml) }};

打印结果:

vue的slot组件如何用

其中elm的内容为插槽内容,结构如下:

vue的slot组件如何用

vue是什么

Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框架的区别是,使用Vue可以自底向上逐层应用,其核心库只关注视图层,方便与第三方库和项目整合,且使用Vue可以采用单文件组件和Vue生态系统支持的库开发复杂的单页应用。

关于“vue的slot组件如何用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: vue的slot组件如何用

本文链接: https://www.lsjlt.com/news/345585.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue的slot组件如何用
    这篇文章主要介绍“vue的slot组件如何用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue的slot组件如何用”文章能帮助大家解决问题。前言slot可以在子组件中开启插槽,在父组件引用该组建时...
    99+
    2023-07-04
  • vue组件化中slot怎么用
    这篇文章将为大家详细讲解有关vue组件化中slot怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言slot可以在子组件中开启插槽,在父组件引用该组建时,可以定义这...
    99+
    2024-04-02
  • vue父子组件slot插槽的使用
    目录vue父子组件slot插槽1.创建一个子组件并在vue实例中注册2.在HTML代码中使用子组件3.在vue实例中写入想要插入到子组件的内容4.在子组件的模板中通过一个slot标签...
    99+
    2022-11-13
    vue父子组件 vue slot插槽 插槽slot
  • 如何使用vue中slot在子组件显示父组件传递的模板
    小编给大家分享一下如何使用vue中slot在子组件显示父组件传递的模板,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!父组件使用没...
    99+
    2024-04-02
  • vue组件中slot插口怎么用
    这篇文章主要介绍vue组件中slot插口怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!子组件<template>   <div ...
    99+
    2024-04-02
  • Vue中的slot如何使用
    这篇文章主要介绍了Vue中的slot如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中的slot如何使用文章都会有所收获,下面我们一起来看看吧。在Vue中,我们使用组件来组织页面和组织代码,类似于搭...
    99+
    2023-06-30
  • vue中的slot封装组件弹窗
    目录slot封装组件弹窗vue组件slot入门---弹窗组件插槽的基础使用弹窗组件slot封装组件弹窗 <template>   <el-dialog :title...
    99+
    2024-04-02
  • vue的slot插口如何用
    这篇文章主要介绍“vue的slot插口如何用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue的slot插口如何用”文章能帮助大家解决问题。子组件<template> &nb...
    99+
    2023-07-04
  • Vue中如何使用slot
    这期内容当中小编将会给大家带来有关Vue中如何使用slot,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。关于slot是这样说的,除非子组件模板包含至少一个 <slot> 插口,否则父组件的内容...
    99+
    2023-06-04
  • vue如何有条件地渲染slot
    这篇文章主要为大家展示了“vue如何有条件地渲染slot”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何有条件地渲染slot”这篇文章吧。有条件地渲染slot每个 Vue&nb...
    99+
    2023-06-27
  • vue的slot-scope/scope属性如何用
    这篇文章主要介绍了vue的slot-scope/scope属性如何用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue的slot-scope/scope属性如何用文章都会有所收获,下面我们一起来看看吧。在vu...
    99+
    2023-07-04
  • 如何使用Vue slot插槽
    这篇文章主要介绍“如何使用Vue slot插槽”,在日常操作中,相信很多人在如何使用Vue slot插槽问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Vue slot插槽”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-25
  • Vue中props组件和slot标签的区别
    在 Vue 中,props 和 slot 都是组件之间进行通信的机制,它们的作用和应用场景有一些区别: props 是一种组件的数据传递机制,...
    99+
    2023-05-14
    Vue中props组件和slot标签的区别 Vue中props组件 Vue中slot标签
  • 怎么用vue slot在子组件显示父组件传递的模板
    这篇“怎么用vue slot在子组件显示父组件传递的模板”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用vue slot...
    99+
    2023-07-04
  • Vue中的插槽slot如何使用
    本篇内容主要讲解“Vue中的插槽slot如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue中的插槽slot如何使用”吧!1.什么是插槽插槽(slot)是 vue 为组件的封装者提供的能...
    99+
    2023-07-05
  • vue中的slot封装组件弹窗怎么实现
    这篇文章主要介绍了vue中的slot封装组件弹窗怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue中的slot封装组件弹窗怎么实现文章都会有所收获,下面我们一起来看看吧。slot封装组件弹窗<t...
    99+
    2023-06-30
  • vue如何观察slot的变化
    这篇文章主要介绍vue如何观察slot的变化,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如何观察slot的变化有时我们需要知道slot内的内容什么时候发生了变化:<!-- 可惜这个活动不存在&nbs...
    99+
    2023-06-27
  • Vue中props组件和slot标签的区别是什么
    本文小编为大家详细介绍“Vue中props组件和slot标签的区别是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue中props组件和slot标签的区别是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-07-05
  • vue架构插槽slot如何使用
    这篇文章主要介绍了vue架构插槽slot如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue架构插槽slot如何使用文章都会有所收获,下面我们一起来看看吧。1、直接使用新建组件 Article<t...
    99+
    2023-06-29
  • 如何使用vue slot分发内容
    本文小编为大家详细介绍“如何使用vue slot分发内容”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何使用vue slot分发内容”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、什么是slot在使用组件时...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作