原生小程序 extendClasses 如何使用

官方文档, 文档其实写的比较清楚了。需要注意的点是,外部样式类是不支持嵌套选择器的。只能一对一的修改。

因为我写 uniapp 多一些,可能是因为习惯遇到了下面的问题。

子组件

js 复制代码
/* 组件 custom-component.js */
Component({
  externalClasses: ["my-class"],
});
html 复制代码
<!-- 页面的 wxml -->
<view class="my-class">
  <view class="item-text">Hello, World!</view>
</view>

父组件

html 复制代码
<custom-component my-class="red-text" />
css 复制代码
/* 页面的 wxss */
.red-text .item-text {
  color: red;
}

这种方式是无效的。因为在 vue 和 uniapp 里面,只要编写了样式穿透组件内部的父盒子选择器,那么父盒子里面的元素我可以随便修改样式。

scss 复制代码
:deep(.parent-class) {
  // 这里可以随便写,只要在父盒子里面就可以自定义组件内部标签的样式
  .child-class {
    color: red;
  }
  .item-text {
    color: red;
  }
}

但是在小程序里面,这种样式是无效的,因为外部样式类不支持嵌套选择器。必须放到你需要修改的标签上。比如下面,修改你的组件文件,把externalClasses: ["my-class"] 修改到你需要修改的标签上, 一对一的修改。就可以了

html 复制代码
<view>
  <!-- 把你的自定义类名一对一的放在标签上 -->
  <view class="my-class">Hello, World!</view>
</view>
相关推荐
阿俊-全栈开发1 小时前
crmeb多门店对接拉卡拉支付小程序聚合收银台集成全流程详解
小程序·php·拉卡拉聚合收银台·拉卡拉三方支付
難釋懷13 小时前
微信小程序全局配置
微信小程序·小程序
Enti7c13 小时前
微信小程序核心知识点速览
微信小程序·小程序
2501_915918411 天前
Fiddler中文版全面评测:功能亮点、使用场景与中文网资源整合指南
android·ios·小程序·https·uni-app·iphone·webview
说私域1 天前
从品牌附庸到自我表达:定制开发开源AI智能名片S2B2C商城小程序赋能下的营销变革
人工智能·小程序
難釋懷1 天前
第一个小程序
小程序
春哥的研究所1 天前
可视化DIY小程序工具!开源拖拽式源码系统,自由搭建,完整的源代码包分享
小程序·开源·开源拖拽式源码系统·开源拖拽式源码·开源拖拽式系统
weixin_lynhgworld1 天前
盲盒一番赏小程序技术实现方案:高并发与防作弊的平衡之道
小程序
今日热点1 天前
小程序主体变更全攻略:流程、资料与异常处理方案
经验分享·微信·小程序·企业微信·微信公众平台·微信开放平台
鸭鸭梨吖1 天前
微信小程序---下拉框
微信小程序·小程序