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

泉企业网站建设wordpress轻量级主题

泉企业网站建设,wordpress轻量级主题,wordpress iis支持,云南建设学校网站首页1、前言及背景 自己写的一个组件有至少3个页面在使用,组件中的部分文字颜色需要统一修改需要根据一个状态字段来显示不同颜色且不希望受父组件影响 注意:博主学习vue截止目前也就半年,如有知识错误之处还请指出不胜感激,祝学习开…

1、前言及背景

自己写的一个组件有至少3个页面在使用,组件中的部分文字颜色需要统一修改需要根据一个状态字段来显示不同颜色且不希望受父组件影响
注意:博主学习vue截止目前也就半年,如有知识错误之处还请指出不胜感激,祝学习开心快乐哈哈

2、deepseek查询

提问:vue3中使用插槽时如果通过子组件统一设置父组件中的插槽的class
答案:
方案有2个
一、插槽包裹层样式穿透
通过在子组件中为插槽‌添加包裹容器‌并设置class,利用CSS作用域穿透特性控制插槽内容样式

<!-- 子组件 ChildComponent.vue -->
<template><div class="child-wrapper"><div class="slot-container"> <!-- 定义插槽容器 --><slot></slot></div></div>
</template><style scoped>
.slot-container :deep(div) { /* 穿透父组件插槽内容 */color: red;padding: 12px;
}
</style>

二、作用域插槽传递参数
通过‌作用域插槽‌将class参数传递给父组件,父组件动态绑定插槽元素的class

<!-- 子组件 ChildComponent.vue -->
<template><slot :slotClass="'custom-class'"></slot> <!-- 传递class参数 -->
</template>
<!-- 父组件 ParentComponent.vue -->
<child-component><template #default="{ slotClass }"><div :class="slotClass"> <!-- 动态绑定接收的class -->插槽内容</div></template>
</child-component>

方案对比
选择方案时,若需‌完全由子组件控制样式‌,优先使用包裹层穿透方案;若需‌保留父组件样式调整灵活性‌,则采用作用域插槽传递参数。

3、具体实现方案

1)给插槽外面包装一个div
2)通过动态计算来设置slot外面div的class名字
3)不同的class里面通过deep选择到父组件可能用到的span和a并控制颜色

4、具体代码

<!--代码片段-->
<template v-if="$slots.edit || $slots.view || $slots.publish"><div :class="classStatusColor"><slot v-if="!!$slots.edit" name="edit" :model="modelEdit"></slot></div>
<template>
  const statusColor = ref(getStatusColor());const classStatusColor = computed(() => ({'slot-edit-container-draft': statusColor.value === STATUS_DRAFT,'slot-edit-container-waiting-approve': statusColor.value === STATUS_WAITING_APPROVE,'slot-edit-container-reject': statusColor.value === STATUS_REJECT,'slot-edit-container-publish': statusColor.value === STATUS_PUBLISH,}));
// 代码片段按照优先级设置颜色STATUS_REJECT > STATUS_DRAFT > STATUS_WAITING_APPROVE > STATUS_WAITING_APPROVE > STATUS_PUBLISH
function getStatusColor() {let values: DataValue[];//values = ............//自己处理逻辑// 空值处理if (values === undefined) {return STATUS_UNKNOWN;}let statusList: number[] = [];for (let i of values) {if (i.value.status === undefined) {statusList.push(STATUS_UNKNOWN);} else {statusList.push(i.value.status);}}if (statusList.includes(STATUS_REJECT)) {return STATUS_REJECT;}if (statusList.includes(STATUS_DRAFT)) {return STATUS_DRAFT;}if (statusList.includes(STATUS_WAITING_APPROVE)) {return STATUS_WAITING_APPROVE;}if (statusList.includes(STATUS_PUBLISH)) {return STATUS_PUBLISH;}return STATUS_UNKNOWN;}
<style lang="less" scoped>// 红色是草稿状态.slot-edit-container-draft :deep(a) {color: rgb(238 102 102);}// 蓝色是待审核状态.slot-edit-container-waiting-approve :deep(a) {color: rgb(84 112 198);}// 橙色是驳回状态.slot-edit-container-reject :deep(a) {color: rgb(250 200 88);}// 黑色是已发布状态.slot-edit-container-publish :deep(a) {font-weight: black;}
</style>
http://www.dtcms.com/a/609980.html

相关文章:

  • 【Qt】多线程学习笔记
  • 做旅游景点网站的目的和意义怎么上传网站地图
  • 判断电脑和手机访问网站怎么选择郑州网站建设
  • Java的编译器是用什么语言写的 | 深入探讨Java编译器的实现原理与技术细节
  • 小麦高分子量谷蛋白(HMW-GS)完整提取流程
  • PostIn从初级到进阶(5) - 如何导入PostMan数据,实现数据迁移
  • LeetCode 面试经典 150_二叉树_二叉树展开为链表(74_114_C++_中等)
  • 航空电子全双工交换式以太网(Avionics Full DupleX switched Ethernet,AFDX)
  • 网站建设资费怎么做网站的浏览量统计
  • SpringBoot16-@Configuration 类
  • 【EGO-Planner自主无人机】在编译EGO-Planner源码时遇到的问题
  • 农业无人机实训教学转型—虚拟仿真破解“三高三难”
  • 专做五金正品的网站网站的定位分析
  • Android开发-java版:SQLite数据库
  • PHP进阶-在Ubuntu上搭建LAMP环境教程
  • 苔藓泛基因组--文献精读174
  • 购物网站建设过程视频权威发布信息
  • 网站建设营销方案wordpress添加微信分享功能
  • JavaWeb项目打包、部署至Tomcat并启动的全程指南(图文详解)
  • Netty和Tomcat有什么区别
  • 多标签页导航后台模板 html+css+js 纯手写 无第三方UI框架 复制粘贴即用
  • 做贷款网站犯法英文网站字体大小
  • Docker Desktop(Windows/Mac)零外网部署 Dify 极简指南
  • 1015 Reversible Primes
  • Nextcloud容器化部署新范式:Docker与Cpolar如何重塑私有云远程访问能力
  • 网站资源建设方案西安网页设计培训
  • AI Compass前沿速览:GPT--Codex 、宇树科技世界模型、InfiniteTalk美团数字人、ROMA多智能体框架、混元D .
  • 做维修那个网站发布信息好编辑不了的wordpress
  • 织梦摄影网站模板长沙网站制作公司怎么做
  • 《Chrome》 [142.0.7444.60][绿色便携版] 下载