原生小程序 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>
相关推荐
空中海21 小时前
微信小程序 - 03 工程实践层与综合 Demo
微信小程序·小程序·notepad++
优睿远行1 天前
微信小程序云开发环境搭建与REST API混合架构实战
微信小程序·小程序
空中海1 天前
微信小程序 - 02 基础概念层与核心能力层
微信小程序·小程序
游戏开发爱好者81 天前
使用Fiddler设置HTTPS抓包诊断Power Query网络问题
android·ios·小程序·https·uni-app·iphone·webview
七月的冰红茶1 天前
【开发工具】使用cursor实现点单小程序
小程序
码农客栈1 天前
小程序学习(十八)之“骨架屏”
小程序
kyh10033811201 天前
微信小程序摇骰子功能实现|含源码
微信小程序·小程序·摇骰子小游戏·摇色子源码
程序鉴定师2 天前
西安App开发推荐与业界认可的优秀实践
大数据·小程序
纤纡.2 天前
HarmonyOS 鸿蒙 ArkTS 实战:从零开发生肖集卡抽奖小程序
华为·小程序·harmonyos·deveco studio
我是伪码农2 天前
小程序26-50
小程序