首页 > 其他分享 >Vue — 插槽

Vue — 插槽

时间:2024-03-11 20:44:53浏览次数:18  
标签:Vue 插槽 具名 默认 user 组件

一、默认插槽:

默认插槽是最常见的插槽类型。它允许我们在组件中插入任意内容,并且如果没有指定具名插槽,则会将内容插入到默认插槽中。

//子组件
<template>
  <div>
    <h1>组件标题</h1>
    <slot></slot>
  </div>
</template>
//父组件
<template>
  <div>
    <h1>组件标题</h1>
    <slot></slot>
  </div>
</template>

二、具名插槽:

除了默认插槽,Vue 还支持具名插槽,用于在组件中定义多个可替换的区域。每个具名插槽都有一个唯一的名称,并且在组件实例中使用 slot 属性进行填充。

//子组件
<template>
  <div>
    <header>
      <slot name="header"></slot>
    </header>
    <main>
      <slot></slot>
    </main>
    <footer>
      <slot name="footer"></slot>
    </footer>
  </div>
</template>
//父组件
<template>
  <div>
    <MyComponent>
      <template v-slot:header>
        <h1>这是头部插槽的内容。</h1>
      </template>

      <p>这是默认插槽的内容。</p>

      <template v-slot:footer>
        <footer>这是尾部插槽的内容。</footer>
      </template>
    </MyComponent>
  </div>
</template>

三、作用域插槽:

作用域插槽是一种特殊的插槽类型,允许子组件向父组件传递数据。通过在插槽中使用具名插槽的方式,我们可以将子组件的数据传递到父组件,并在父组件的模板中使用这些数据。

<!-- 子组件 MyComponent.vue -->
<template>
  <div>
    <slot :user="user"></slot>
  </div>
</template>

<script>
export default {
  data() {
    return {
      user: {
        name: 'John',
        age: 25
      }
    };
  }
}
</script>
<!-- 父组件 App.vue -->
<template>
  <div>
    <MyComponent>
      <template v-slot="{ user }">
        <p>用户名:{{ user.name }}</p>
        <p>年龄:{{ user.age }}</p>
      </template>
    </MyComponent>
  </div>
</template>

 

标签:Vue,插槽,具名,默认,user,组件
From: https://www.cnblogs.com/qinlinkun/p/18067007

相关文章

  • Vue — v-load封装 loading效果
    <template><divclass="app"><divclass="box"v-load="isLoading"><ul><liv-for="(item,index)inlist":key="index">{{item.name}}&l......
  • 一文告诉你Vue的事件处理
    Vue事件处理使用v-on指令(简写为@)来监听DOM事件,并在事件触发时执行对应的JavaScript。methods承载多是事件函数v-on可以用@替换用法v-on:click="methodName"或@click="methodName"事件处理器的值可以是:内联事件处理器:事件被触发时执行的内联JavaScri......
  • vue3 父子组件间通讯
    1、父组件向子组件传值父组件<fitSteps:stepActive="stepActive"><div>插槽信息</div>      <van-buttontype="primary"@click="FatherClick">下一步</van-button></fitSteps>conststepActive=ref......
  • Vue组件库的选择与实现 - ViewDesign
    随着Web应用的不断进化和发展,前端开发的需求也在日益增加。在这样的背景下,Vue框架以及各种Vue组件库应运而生。本文将探讨如何选择一个高质量的Vue组件库,并通过使用ViewDesign库阐述如何实现高效、优雅的前端架构。前端架构的重要性前端架构的设计对于整个项目的成功至关重要。......
  • Java登陆第三十四天——使用Vite创建工程化的Vue3项目
    VueVue是基于标准HTML、CSS和JavaScript构建的前端框架,可以更高效地开发前端页面。ViteVite是Vue团队开发的项目管理工具。Maven的主要功能引入依赖项目管理使用Maven可以工程化的管理后端代码。npm的主要功能:引入依赖vite的主要功能:项目管理使用npm+vit......
  • Vue学习笔记44--mixin混入
    mixin混入:可以理解为是代码的一种重构复用一个混入对象可以包含任意组件选项(如data、methods、mounted等等)。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。示例一:局部混合示例局部混入就是在单独的vue组件中引入了mixin混入对象 Student.vue......
  • Vue.js 与 ViewDesign:为企业级 Web 应用提供高效可靠的解决方案
    Vue.js与ViewDesign:为企业级Web应用提供高效可靠的解决方案在当今瞬息万变的商业环境中,企业需要高效、稳定且易于维护的Web应用程序来支持其日常运营和业务发展。幸运的是,Vue.js和ViewDesign的强大组合为开发人员提供了构建复杂企业级Web应用程序的完美解决方案。......
  • Vue — .sync修饰符的使用
    .sync修饰符作用:可以实现子组件和父组件数据的双向绑定,简化代码特点:prop属性名,可以自定义,非固定value使用场景:封装弹窗类的基础组件,添加自定义属性 使用true/false控制本质:就是:属性名和@update:属性名 合写<template><divclass="app"><button@click=......
  • vue前端获取/切换麦克风、播放采集音频和采集音量大小完整代码
    1、创建Vue项目在终端运行npminstallelement-uinpminstallrecordrtc2、案例图示 3、代码1、获取麦克风列表if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){varMic=[]//弹框获取麦克风navigator.mediaDevices.getUserMedia({a......
  • Vue — v-model详解
    一、v-model原理原理:v-model本质上是一个语法糖。例如在inpu中,就是value属性和input事件的合写作用:提供数据的双向绑定双向绑定:数据变,视图跟着变;视图变,数据跟着变二、表单类组件封装&v-model简化代码1.表单组件封装的核心思路:(1)父传子:数据从父组件使用prop传递给子组件渲染......