【vue2第十四章】 插槽(普通插槽、具名插槽、作用域插槽语法)

插槽

插槽是什么?
在 Vue 2 中,插槽(slot)是一种用于定义组件内部内容分发的机制。它允许你将组件中的一部分内容替换为用户自定义的内容,并在组件内部进行渲染。

通过在组件模板中使用 标签,你可以指定一个插槽的位置。这个位置可以被父组件中的任意内容所填充。父组件中的内容将被插入到插槽所在的位置,并最终与组件的其他部分一起进行渲染。

普通插槽

【vue2第十四章】 插槽(普通插槽、具名插槽、作用域插槽语法)_第1张图片
首先建立弹窗组件,在内容的位置添加 标签:

<template>
  <div class="dialog">
    <div class="dialog-header">
      <h3>友情提示h3>
      <span class="close">✖️span>
    div>

    <div class="dialog-content">
      
      <slot>你确认要退出本系统么?slot>
    div>
    <div class="dialog-footer">
      <button>取消button>
      <button>确认button>
    div>
  div>
template>

<script>
export default {
  data () {
    return {
    }
  }
}
script>

<style scoped>
* {
  margin: 0;
  padding: 0;
}
.dialog {
  width: 470px;
  height: 230px;
  padding: 0 25px;
  background-color: #ffffff;
  margin: 40px auto;
  border-radius: 5px;
}
.dialog-header {
  height: 70px;
  line-height: 70px;
  font-size: 20px;
  border-bottom: 1px solid #ccc;
  position: relative;
}
.dialog-header .close {
  position: absolute;
  right: 0px;
  top: 0px;
  cursor: pointer;
}
.dialog-content {
  height: 80px;
  font-size: 18px;
  padding: 15px 0;
}
.dialog-footer {
  display: flex;
  justify-content: flex-end;
}
.dialog-footer button {
  width: 65px;
  height: 35px;
  background-color: #ffffff;
  border: 1px solid #e1e3e9;
  cursor: pointer;
  outline: none;
  margin-left: 10px;
  border-radius: 3px;
}
.dialog-footer button:last-child {
  background-color: #007acc;
  color: #fff;
}
style>

在父组件中引入组件,并且在组件标签中写入内容。如果不写将展示默认 标签里面的文字,默认内容,也叫做后备内容。


<template>
  <div id="app">
    
    <MyDialog>你好!欢迎使用vue2MyDialog>
  div>
template>


<script>
// import MyBodys from './components/MyBodys.vue';
import MyDialog from './components/MyDialog.vue';
export default {
  name: "App",
  data() {
    return {
    };
  },
  components:{
    MyDialog
  }
};
script>


<style>
#app {
  width: 100%;
  height: 700px;
  background-color: rgb(167, 167, 167);
  overflow: hidden;
}
*{
  margin: 0;
  padding: 0;
}
style>

最后效果成功填充了弹窗中的内容:
【vue2第十四章】 插槽(普通插槽、具名插槽、作用域插槽语法)_第2张图片

具名插槽

一个组件可以拥有多个插槽,每个插槽可以有不同的名称,以便在父组件中选择性地进行内容分发。父组件可以使用