前情

uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验也挺棒的,公司项目就是主推uni-app,对于一些组件我觉得可以复用的我都会抽成组件,如果觉得组件有分享价值的我都会分享到插件市场一来后续我别的项目用到可以直接下载使用,二来可以供大家使用,提高开发效率,我的插件库地址:DCloud 插件市场

插件不管你怎么封装,你暴露多少可配置API都难以适应形形色色的各种需求场景,就像这次我在开发一个售后模块需求,我想复用的我已经抽取的选择器组件来实现它的退款原因的选择,下图左边是我已经抽取的组件,右图是新的设计稿要实现的组件

坑位

组件功能是一样的,是可以复用的,但是它的UI相差的有点多,特别是勾选框的位置,这个比较能搞的,我是主动找UI沟通,能不能尽量复用我以前抽取的组件,这样可以减少一些开发工作量,UI最终同意了,但是颜色和字体大小还是要按新的UI来,整体结构可以复用,沟通到了这里应该是很愉快的了,改颜色和字体这不就是样式穿透的小事么

如果是web项目确实是小事,直接:deep(样式名穿透即可),我一开始也是这样整,自测也是OK的,还原出来的样式如下

随着我开发的进行,我一开始是把这个组件直接放到页面中的,后面发现这个组件在另一个地方也要用到,我于是理所当然的把它抽成了一个组件,此时事情发生了,我写的样式穿透全部不生效了

遇到的问题?

支付宝小程序端在页面中做组件的样式穿透是可以生效的,但是在组件里再对子组件做样式穿透是不会生效,这个问题其实我在快手和抖音端也遇到过,当时没有想到记录下来,这次整支付宝又遇到了……

解决方案

方案1:最暴力的方式

反正组件已经下载到uni_modules里,我直接修改里面源码颜色即可,这样改也是可以的,就怕某一天哪个新人不小心来个右击更新插件那就尴尬了,所以不是太推荐

方案2:既然样式穿透不生效,那我直接写全局样式

这里又有一个注意点,你直接在组件里移除scoped写全局样式是没有用的,你必须把你的样式移动到App.vue里的全局样式去,这里有一个技巧,防止影响到别的地方的样式,我把组件包一层,再取一个唯一的样式名,把重置样式写到这个样式名下即可,最终得以解决

思考

对于开发抽取并收集组件是非常值得做的,一来可以提高自己封装组件的技巧,二来可以减少重复的工作量,但对于形形色色的需求,组件很难适应所有,这时我们首先和需求保持沟通,能不能直接用组件样式,如果不行,能不能尽量往已抽取的组件靠,再通过样式穿透来适配,就算需求还是不同意,那最坏的就是直接拷贝一份组件再改那也比你从0写一个要快,你说是不是了?如果你有更好的看法,欢迎留言分享,一起学习进步

uni-app支付宝小程序样式穿透失效的更多相关文章

  1. uni app以及小程序 --环境搭建以及编辑器

    https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 根据以上网页下载自己电脑相应的版本的微信开发者工具(目录 ...

  2. 支付宝小程序PHP全栈开发--前端样式的设计.acss样式详解

    关于.acss文件 在视频中已经说过了,小程序的设计思想和原生app的设计思想颇为相似,基本的应用单元为页面.当然对于一个页面来说每一个元素的放置位置在哪儿以及显示成什么样子这个是由样式来决定的.我们 ...

  3. 小程序开发过程中常见问题[微信小程序、支付宝小程序]

    目录 一.样式中如何使用background-image呢? 二.使用自适应单位rpx类似于rem,布局尽量使用flex布局 三.万能的{{双大括号,用于在模版中输出变量 四.你想要的基础组件和API ...

  4. 微信小程序快速移植支付宝小程序

    移植背景: 1. 支付宝小程序开发文档只了解了大致框架,跑了demo,具体Api.组件没太多了解: 2. 已有微信小程序,移植支付宝小程序做预研(主要针对授权登录.支付等功能). 3. 移植的微信小程 ...

  5. 支付宝小程序与微信小程序开发功能和语法糖不同

    最近开始负责公司webapp数据打通支付宝小程序,之前已经打通了微信小程序,现在根据支付宝小程序的开发文档在之前的模板上面做修改. 在修改模板的过程中,总结一下双方功能和语法糖的不同之处. 框架: a ...

  6. 支付宝小程序日期选择组件datePicker封装

    github 地址 https://github.com/iocool/antminDatePicker 最近在做支付宝小程序(以下简称小程序)开发,发现小程序的日期选择组件很不好用,比如安卓和IOS ...

  7. 甘果移动老甘:移动互联网变迁中的App和小程序

    2018 年 10 月13 日,由又拍云和知晓云联合主办的 Open Talk 丨2018 小程序开发者沙龙系列活动广州站拉开帷幕,甘果移动的 CEO 路文杰(老甘)在沙龙上做了<移动互联网变迁 ...

  8. 支付宝小程序开发之与微信小程序不同的地方

    前言: 本文仅汇总微信小程序移植支付宝小程序过程中遇到的一些不同的地方,详细请参考官方开发文档. 网络请求: 对于网络请求,基本上改动不大,也就支付宝小程序没有responseType属性及响应码字段 ...

  9. 微信小程序/支付宝小程序 WxParse解析富文本(html)代码

    小程序本身并不太支持html代码,比如html的img.span.p这个时候改这么办呢?需要用到一个小插件WxParse来实现. 小程序高级交流群:336925436  微信小程序支持富文本编辑器代码 ...

  10. 支付宝小程序自定义弹窗插件|支付宝dialog插件|model插件

    支付宝小程序自定义弹窗组件wcPop|小程序自定义对话框|actionSheet弹窗模板 支付宝小程序官方提供的alert提示框.dialog对话框.model弹窗功能比较有限,有些都不能随意自定义修 ...

随机推荐

  1. <HarmonyOS第一课10>ArkUI进阶#鸿蒙课程##鸿蒙生态#

    课程介绍 <HarmonyOS第一课:ArkUI进阶>是专为HarmonyOS开发者设计的课程,旨在提升开发者在ArkUI框架中的布局技能.课程将重点讲解如何进行布局性能优化,包括精简节点 ...

  2. [HTB] 靶机学习(一)Heal

    [HTB] 靶机学习(一)Heal 概要 学习hackthebox的第一天,本人为初学者,将以初学者的角度对靶机渗透进行学习,中途可能会插入一些跟实操关系不大的相关新概念的学习和解释,尽量做到详细,不 ...

  3. SpringBoot中的拦截器江湖

    前言 很多小伙伴在工作中遇到拦截需求就无脑写HandlerInterceptor,结果被复杂场景搞得鼻青脸肿. 作为一名有多年开发经验的程序员,今天领大家到SpringBoot的山头认认6把交椅: 这 ...

  4. 国产化-消息队列RocketMq(替代kafka)-单节点安装

    RocketMQ 是一款由阿里巴巴开源的分布式消息中间件,具有高可靠.高性能.高可扩展性等特点,在众多企业级应用中得到了广泛的应用.以下是对 RocketMQ 的详细介绍:   国内三大IT巨头阿里. ...

  5. openEuler 20.03 LTS安装单病种前置机

    # 下载配置文件包 cd /opt wget https://interface-soft.oss-cn-hangzhou.aliyuncs.com/manual-package/config.tar ...

  6. vue3适配移动端的登录实现

    <script lang="ts" setup> import { ref } from 'vue' const PHONE_NUMBER_REGEX = /^1[0- ...

  7. 基于ROS2/MoveIt!的工业机械臂控制系统开发全攻略

    1. 系统架构设计 1.1 系统组成模块 [Vision System] --> [Perception Node] | | [Gazebo Sim] <--> [ROS2 Cont ...

  8. 【2020.11.30提高组模拟】删边(delete) 题解

    [2020.11.30提高组模拟]删边(delete) 题解 题意简述 给一棵树删边,每次删的代价为这条边所连的两个点的子树中最大点权值. 求删光的最小代价. \(n\le100000\). Solu ...

  9. Dispatch PDI v2.0.4即将发布,历经1000+用户装机验证,稳定版震撼来袭!

    Dispatch PDI V2.0.4版本,即将登场! 亲爱的用户们: 在数据调度领域的探索之路上,我们始终致力于为大家提供更强大.更高效的工具.今天,我们怀着激动的心情宣布,Dispatch PDI ...

  10. WineHQ 发布的 Framework Mono 6.14 的这个特性对Windows Forms 用户来说肯定很感兴趣

    微软于 2024年8月 将 Mono 项目所有权正式捐赠给 WineHQ 组织,标志着该项目进入开源社区主导的新阶段,WineHQ 在 2025年3月8日 发布了接管后的首个版本 Framework ...