Vue3中同时定义多个插槽的实现示例

 更新时间:2023年12月21日 10:40:50   作者:Python私教  
本文主要介绍了Vue3中同时定义多个插槽的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

概述

当你想要给外部预留多个位置的时候,具名插槽就非常有用了。

比如,我们定义一个卡片,让别人使用的时候,标题可以自定义,内容也可以自定义,这个时候就需要两个插槽。

基本用法

我们创建src/components/Demo32.vue,代码如下:

<template>
  <div>
    <slot name="title">
      <h3>卡片默认标题</h3>
    </slot>
    <slot name="content">
      <div>卡片默认内容</div>
    </slot>
  </div>
</template>

接着,我们修改src/App.vue:

<script setup>
import Demo from "./components/Demo32.vue"
</script>
<template>
  <h1>欢迎跟着Python私教一起学习Vue3入门课程</h1>
  <hr>
  <demo/>
  <hr>
  <demo>
    <template #title>
      <h3>自定义的标题</h3>
    </template>
    <template #content>
      <div>自定义的内容</div>
    </template>
  </demo>
</template>

然后,我们浏览器访问:http://localhost:5173/

在这里插入图片描述

完整代码

package.json

{
  "name": "hello",
  "private": true,
  "version": "0.1.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build"
  },
  "dependencies": {
    "vue": "^3.3.8"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^4.5.0",
    "vite": "^5.0.0"
  }
}

vite.config.js

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()],
})

index.html

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" rel="external nofollow"  />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vite + Vue</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>

src/main.js

import { createApp } from 'vue'
import App from './App.vue'

createApp(App).mount('#app')

src/App.vue

<script setup>
import Demo from "./components/Demo32.vue"
</script>
<template>
  <h1>欢迎跟着Python私教一起学习Vue3入门课程</h1>
  <hr>
  <demo/>
  <hr>
  <demo>
    <template #title>
      <h3>自定义的标题</h3>
    </template>
    <template #content>
      <div>自定义的内容</div>
    </template>
  </demo>
</template>

src/components/Demo32.vue

<template>
  <div>
    <slot name="title">
      <h3>卡片默认标题</h3>
    </slot>
    <slot name="content">
      <div>卡片默认内容</div>
    </slot>
  </div>
</template>

启动方式

yarn
yarn dev

浏览器访问:http://localhost:5173/

到此这篇关于Vue3中同时定义多个插槽的实现示例的文章就介绍到这了,更多相关Vue3同时定义多个插槽内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • element-ui表格列金额显示两位小数的方法

    element-ui表格列金额显示两位小数的方法

    这篇文章主要介绍了element-ui表格列金额显示两位小数的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • vue使用pdfjs-dist+fabric实现pdf电子签章的思路详解

    vue使用pdfjs-dist+fabric实现pdf电子签章的思路详解

    最近领导提了一个新需求:仿照e签宝,实现pdf电子签章,本文给大家介绍vue使用pdfjs-dist+fabric实现pdf电子签章的思路,感兴趣的朋友一起看看吧
    2023-12-12
  • vue实现同一个页面可以有多个router-view的方法

    vue实现同一个页面可以有多个router-view的方法

    今天小编就为大家分享一篇vue实现同一个页面可以有多个router-view的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vue.js学习笔记:如何加载本地json文件

    vue.js学习笔记:如何加载本地json文件

    这篇文章主要介绍了vue.js学习笔记:如何加载本地json文件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。
    2017-01-01
  • vue项目中应用ueditor自定义上传按钮功能

    vue项目中应用ueditor自定义上传按钮功能

    这篇文章主要介绍了vue项目中应用ueditor自定义上传按钮功能,文中以vue-cli生成的项目为例给大家介绍了vue项目中使用ueditor的方法,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-04-04
  • TypeScript踩坑之TS7053的问题及解决

    TypeScript踩坑之TS7053的问题及解决

    这篇文章主要介绍了TypeScript踩坑之TS7053的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • vue打印的对象在浏览器中显示的问题分析

    vue打印的对象在浏览器中显示的问题分析

    因为在vue中对象都是用了代理重写了get,由于get重写也就导致了浏览器不能直接获取到具体的值,因此才会在打印的时候为...,手动点击展开才显示具体的值,这篇文章主要介绍了为什么vue打印的对象在浏览器中显示,需要的朋友可以参考下
    2024-04-04
  • 深入了解vue2与vue3的生命周期对比

    深入了解vue2与vue3的生命周期对比

    这篇文章主要为大家介绍了vue2与vue3的生命周期对比,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • 基于VUE的v-charts的曲线显示功能

    基于VUE的v-charts的曲线显示功能

    这篇文章主要介绍了基于VUE的v-charts的曲线显示功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • 使用Vue3+PDF.js实现PDF预览功能

    使用Vue3+PDF.js实现PDF预览功能

    项目中有一个需要预览下载pdf的需求,网上找了很久,决定使用 pdf.js 完成,下面这篇文章主要给大家介绍了关于使用Vue3+PDF.js实现PDF预览功能的相关资料,需要的朋友可以参考下
    2022-12-12

最新评论