首页 > 其他分享 >vue tsx slots传入方式

vue tsx slots传入方式

时间:2024-10-24 20:43:40浏览次数:8  
标签:vue footer header tsx MyComponent slots defineComponent

代码

  • 子组件
import { defineComponent, PropType } from 'vue';

const MyComponent = defineComponent({
    name: 'MyComponent',
    props: {
        title: {
            type: String as PropType<string>,
            required: true
        }
    },
    setup(props, { slots }) {
        return () => (
            <div>
                <h1>{props.title}</h1>
                <div>
                    {/* 渲染名为 "header" 的插槽 */}
                    {slots.header ? slots.header() : <p>默认头部内容</p>}
                </div>
                <div>
                    {/* 渲染名为 "footer" 的插槽 */}
                    {slots.footer ? slots.footer() : <p>默认底部内容</p>}
                </div>
            </div>
        );
    }
});

export default MyComponent;

  • 父组件传入方式
<script lang="tsx">
import { defineComponent } from 'vue';
import MyComponent from './components/childAbc';

const App = defineComponent({
  name: 'App',
  setup() {
    return () => (
      <div>
        <MyComponent title="欢迎" v-slots={{
          header: () => <h2>这是自定义头部内容</h2>,
          footer: () => <p>这是自定义底部内容</p>,
        }} />
      </div>
    );
  },
});

export default App;
</script>

标签:vue,footer,header,tsx,MyComponent,slots,defineComponent
From: https://www.cnblogs.com/jocongmin/p/18500448

相关文章

  • vue3开启eslint报错:ESLint error: Parsing error: ‘>‘ expected,vue文件tsx语法报错解
    出错代码部分<scriptlang="tsx">import{defineComponent}from'vue';importMyComponentfrom'./components/childAbc';constApp=defineComponent({name:'App',setup(){return()=>(<div&......
  • Vue 3 `useAttrs` 使用
    在Vue3中,useAttrs是一个组合式API函数,允许你访问组件的所有属性(props)和传递给组件的非prop特性。这在自定义组件时非常有用,尤其是当你想要将这些属性传递给子组件或原生HTML元素时。使用useAttrs的基本步骤引入useAttrs:从Vue中引入useAttrs。调用useAttrs:在......
  • Vue.js 投票排行榜:从零到完整实现详细教程” “新手友好:使用 Vue.js 构建一个实时投票
    效果图博客教程:使用Vue.js实现投票排行榜页面(详细步骤)在本篇博客教程中,我们将逐步带你实现一个投票排行榜页面,使用的是Vue.js框架。此项目适合前端开发新手,可以帮助你更好地理解Vue的基本功能和组件开发。目录项目介绍搭建项目基础结构实现榜单前3名展示实现倒计时功......
  • Vue中使用el-upload实现文件上传时控制提交按钮状态的最佳实践
    在Web应用开发中,文件上传是一个常见的需求。在使用Vue框架和ElementUI库时,我们经常使用el-upload组件来处理文件上传。但是,如何在上传过程中控制提交按钮的可用状态,以避免在上传未完成时误触提交操作,是一个值得探讨的问题。本文将介绍一种简单有效的方法来解决这个问题。问......
  • 基于vben框架的vue前端代码编译时报错
    在Node18.16和16.20版本下使用vben框架时,遇到pnpminstall报错关于eslint-config缺失的问题,解决方案是通过添加pnpm-workspace.yaml文件并指定内部依赖,确保`@vben/eslint-config`版本配置正确。问题描述node18.16/node16.20中编译vben框架的vue前端代码,pnpminstall报错:"@v......
  • 2024-10-24 瀑布流(vue3)
    效果图: 代码: <template><divid="waterfallContainer"class="waterfall-container"><divv-for="(column,columnIndex)incolumns":key="columnIndex"class="waterfall-column">......
  • vue3入门教程,一站学会全套vue!
    vue3vue3作为前端重要的框架,学会vue可以让你更加了解前端。本博客致力于让你一站学会vue3的全部内容,从小白到高手。全是干货,准备好了吗?文章目录vue3创建工程文档结构核心语法模板语法插值语法指令语法无参指令有参指令自定义指令setupsetup函数setup语法糖响应式数......
  • 安装node及vue项目的启动
    1、ubuntu安装npmsudoaptinstallnodejsnpm2、设置包下载源npmconfigsetregistryhttps://registry.npmmirror.com/3.安装包及运行npminstall安装成功后会生成一个node_moudels目录运行:npmrunserve4、常见报错及解决方式(1)oldlockfile报错npmWARNoldlo......
  • vue3 学习笔记(不断更新中...)
    组合式APIsetup()11响应式APIrefref用于创建响应式数据(通常用来定义基本类型数据)在JavaScript代码中,需要使用.value来操作数据letcount=ref(1)console.log(count.value)//1count.value++console.log(count.value)//2在Template模板中不需要<scriptse......
  • (系列九)使用Vue3+Element Plus创建前端框架(附源码)
    说明  该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发)。   该系统文章,我会尽量说的非常详细,做到不管新手、老手都能看懂。   说明:OverallAuth2.0是一个简单、易懂、功能强大的权限+可视化流程管理系统。友情提醒:本篇文章是属于系......