当前位置: 首页 > news >正文

vue组件二次封装

vue演练场:Vue SFC Playground

有组件如下:

它接受

  1. props:msg
  2. 命名插槽 header
  3. 作用域插槽
<script setup>
const greetingMessage = 'hello'
const props=defineProps({
	msg:{
		type:String,
		default:"默认msg props"
	}
})
</script>

<template>
  <div>
		<h1>{{msg}}</h1>
  	<slot :text="greetingMessage" :count="1"></slot>
		<div style="border:1px solid red">
		<slot name="header">默认header</slot>
		</div>
	</div>
</template>

直接使用

<script setup>
import MyComponent from './MyComponent.vue'
import Comp2 from './Comp2.vue';
</script>

<template>
	<MyComponent v-slot="slotProps">
  	{{ slotProps.text }} {{ slotProps.count }}
  </MyComponent>

	
	</Comp2>
		

</template>

二次封装组件

对原来的MyComponent再封装一次

强烈二次封装使用export default方式的鞋,不要用setup,会多好多声明代码

<script>
import MyComponent from './MyComponent.vue';
export default {
  components:{MyComponent}
}
</script>

<template>
  <MyComponent v-bind="$attrs">
    <template v-for="(item,name) in $slots" #[name]="slotData">
      <slot :name="name" v-bind="slotData"></slot>
    </template>
  </MyComponent>
</template>

二次封装的组件的使用

<script setup>
import MyComponent from './MyComponent.vue'
import Comp2 from './Comp2.vue';
</script>

<template>
	<MyComponent v-slot="slotProps">
  	{{ slotProps.text }} {{ slotProps.count }}
  </MyComponent>
	<div style="height:200px"></div>
	<Comp2 />
	
		<div style="height:200px">下面是传递了参数和slot的</div>
	<Comp2 >
		<template v-slot:header>
			我是自定义头内容
		</template>
		<!-- 自定义作用域插槽 -->
		<template v-slot:default="slotProps">
				<div>default变了{{ slotProps.text }} {{ slotProps.count }}</div>
		</template>
		<template v-slot:head="slotProps">
				<div>头变了:{{ slotProps.text }} {{ slotProps.count }}</div>
		</template>
	
	</Comp2>
		

</template>


文章转载自:
http://auditoria.riewr.cn
http://carbomycin.riewr.cn
http://byroad.riewr.cn
http://candidly.riewr.cn
http://attrited.riewr.cn
http://canavalin.riewr.cn
http://autodyne.riewr.cn
http://cense.riewr.cn
http://catchment.riewr.cn
http://bac.riewr.cn
http://carouser.riewr.cn
http://anjou.riewr.cn
http://anticorrosive.riewr.cn
http://adscription.riewr.cn
http://aspherics.riewr.cn
http://bourbon.riewr.cn
http://cancellate.riewr.cn
http://archon.riewr.cn
http://bacteriostatic.riewr.cn
http://bathochrome.riewr.cn
http://cankerworm.riewr.cn
http://bloodless.riewr.cn
http://anthophilous.riewr.cn
http://bushelage.riewr.cn
http://aztecan.riewr.cn
http://blouse.riewr.cn
http://carbonium.riewr.cn
http://abye.riewr.cn
http://alveolation.riewr.cn
http://causerie.riewr.cn
http://www.dtcms.com/a/27125.html

相关文章:

  • 关于redis的主从复制(下)
  • 【深度学习在图像配准中的应用与挑战】
  • 详细介绍Tess4J的使用:从PDF到图像的OCR技术实现
  • Nacos Derby 远程命令执行漏洞修复建议
  • DeepSeek学习资料
  • 强化学习-价值学习算法
  • 电路元器件知识:稳压二极管
  • 开题报告——基于Spring Boot的社区居民健康管理平台的设计与实现
  • NPM环境搭建指南
  • 在 Ubuntu 22.04 中修改主机名称(hostname)
  • C++基础知识学习记录—模版和泛型编程
  • Three.js 快速入门教程【一】开启你的 3D Web 开发之旅
  • Redis_基础
  • C语言(结构体)
  • unity学习47:寻路和导航,unity2022后版本如何使用 Navmesh 和 bake
  • Java基础——代理模式
  • 【优先级队列】任务分配
  • sentinel集成nacos做持久化配置
  • rk3576上部署deepseek
  • systemverilog刷题小记
  • CodeGPT 使用教程(适用于 VSCode)
  • Kafka 简介
  • 波导阵列天线 学习笔记9 使用紧凑高效率馈网的宽带圆极化阵列天线
  • 【面试题】2025.02.19-前端面试题汇总
  • 图论(四):图的中心性——度中心性介数中心性紧密中心性
  • 学习总结2.19
  • 【小白学HTML5】一文讲清常用单位(px、em、rem、%、vw、vh)
  • “深入浅出”系列之C++:(24)ZeroMQ库
  • 炫酷动效登录页
  • DeepSeek学术指南:DeepSeek在文献综述中的能力分享!