一、问题

页面功能太多,想分成多个自定义组件,结果发现自定义组件样式不生效。

二、解决办法(推荐第二种)

第一种:利用 externalClasses 定义段定义若干个外部样式类实现(不推荐,写法累赘繁琐,可忽略)

/* CustomComp.js */

export default class CustomComp extends Component {

static externalClasses = ['my-class']

render () {

return 这段文本的颜色由组件外的 class 决定

}

}

/* MyPage.js */

export default class MyPage extends Component {

render () {

return

}

}

/* MyPage.scss */

.red-text {

color: red;

}

缺点:

1、自定义组件里面的每一个className都需要在externalClasses里面定义,然后才能使用;

2、不能使用 id 选择器(#a)、属性选择器([a])和标签名选择器等多种写法限制;

第二种:使用 CSS Modules(通过引入样式变量的方式添加className,哪里需要就在哪里引用即可)

import Taro, { Component } from '@tarojs/taro'

import { View, Text } from '@tarojs/components'

import styles from './Test.module.scss'

export default class Test extends Component {

constructor(props) {

super(props)

this.state = { }

}

render () {

return (

Hello world!

)

}

}

Taro 中内置了 CSS Modules 的支持,但默认是关闭的,如果需要开启使用,请先在编译配置中添加如下配置

根目录下的config/index.js:

// 小程序

mini: {

postcss: {

// css modules 功能开关与相关配置

cssModules: {

enable: true, // 默认为 false,如需使用 css modules 功能,则设为 true

config: {

namingPattern: 'module', // 转换模式,取值为 global/module,下文详细说明

generateScopedName: '[name]__[local]___[hash:base64:5]'

}

}

}

}

// h5

h5: {

postcss: {

// css modules 功能开关与相关配置

cssModules: {

enable: true, // 默认为 false,如需使用 css modules 功能,则设为 true

config: {

namingPattern: 'module', // 转换模式,取值为 global/module,下文详细说明

generateScopedName: '[name]__[local]___[hash:base64:5]'

}

}

}

}

需要注意文件取名需要在中间加上 .module.  ,因为namingPattern配置的'module'模式,只有文件名中包含 .module. 的样式文件会经过 CSS Modules 转换处理。

标签:taro,自定义,modules,module,组件,Taro,class,css

来源: https://www.cnblogs.com/yang-shun/p/12592318.html

html5自定义组件样式,Taro 自定义组件样式不生效及解决方案相关推荐

  1. 支付宝小程序 | 上传图片组件(添加默认样式以及自定义上传样式)

    使用my.uploadFile. my.chooseImage 的方式实现图片上传 注意: 使用该方式上传文件,后端也需要参照官方文档进行修改 https://opendocs.alipay.com/ ...

  2. html5 input搜索框样式修改,修改input搜索框默认叉号的样式为自定义图片

    兼容IE的自定义input搜索框叉号样式(使用图片替换input原生叉号) 代码 input::-webkit-search-cancel-button { -webkit-appearance: n ...

  3. react 组件样式_如何使用样式化组件为React组件创建视觉变体

    react 组件样式 by Gilad Dayagi 通过吉拉德·达亚吉 如何使用样式化组件为React组件创建视觉变体 (How to create visual variants for Reac ...

  4. ReactNative简介、开发环境、调试、常用组件、useState状态、FlatList组件、SectionList组件、Platform 模块、定义样式、图片组件、触摸事件、打包apk发布版

    ReactNative简介: ReactNative是基于React语法来进行开发移动app的框架: ReactNative中提供了移动端专用的一些组件,我们要使用ReactNative固有的组件代替 ...

  5. php 小程序自定义图,微信小程序之如何使用自定义组件封装原生 image 组件

    零.问题的由来 一般在前端展示图片时都会碰到这两个常见的需求: 图片未加载完成时先展示占位图,等到图片加载完毕后再展示实际的图片. 假如图片链接有问题(比如 404),依然展示占位图.甚至你还可以增加 ...

  6. 微信小程序(组件:路由、表单、媒体、自定义组件,插槽、组件通讯、侦听器、生命周期)

    三.微信小程序组件 组件就是小程序页面的组成结构,与html在web网页开发中的作用一样,铺设页面.可以参考其他UI库,像elementUI,vantUI组件 组件是视图层的基本组成单元. 组件自带一 ...

  7. 自定义组件开发六 自定义组件

    概述 Android SDK 为我们提供了一套完整的组件库,数量多.功能强,涉及到方方面面,但是,我们依然看到软件市场上的每个 App 都有自己独特的东西,绝不是千遍一律的,而且也会和 IOS相互借鉴 ...

  8. 微信小程序全栈开发实践 第二章 微信小程序组件介绍及使用 -- 2.9 页面链接组件,如何自定义一个导航栏?

    一.小程序中的导航组件 functional-page-navigator 仅在插件中有效,用于跳转到插件功能页. navigator 小程序标准的导航组件 小程序插件是对一些js接口.自定义组件或页 ...

  9. vue 公共列表选择组件,引用museUI的样式

    题外话: 我另一篇文章写了VantUI 的公共样式选择组件,比这个组件完善一些,个人比较喜欢VantUI 组件地址:https://blog.csdn.net/qq_38832375/article/ ...

最新文章

  1. 神经网络的sigmoid激活函数是一种平方映射
  2. css中的px、em、rem 详解
  3. 銷售訂單 (Sales Order): 資料表及更新記錄
  4. 《Windows Phone 8 Development Internals》读书笔记-1-2-1-连载
  5. 光纤通道如何过渡到SAN
  6. sqlserver 多表更新
  7. 一直跳出来 visual_六天时间排出来肾结石,这种经历再也不要了
  8. 钟薛高雪糕最贵一支66元 创始人:成本40 你爱要不要
  9. vue获取编辑器纯文字_vue中使用富文本编辑器
  10. python自学看什么书-自学Python要看哪些书?有什么推荐?
  11. spark如何进行聚类可视化_利用spark做文本聚类分析
  12. NYOJ201-作业题(最长升降子序列)
  13. 电信光猫/烽火HG6543c1光猫超级密码获取改桥接模式( 中国电信浙江公司定制天翼网关3.0)
  14. sql cai bird教程学习记录
  15. cesium three性能比较_高中英语中的“形容词”,形容词的用法,比较等级及修饰词...
  16. 青少年python编程入门范例_青少年Python编程入门—图解Python
  17. 支付宝开发流程及注意事项
  18. 牛客2019跨年AK场题解(一)
  19. h5实现上下滑动切页
  20. 计算机音乐谱安娜的橱窗,钢琴谱 - 安娜的橱窗(2)

热门文章

  1. [20150610]使用物化视图同步数据.txt
  2. 变电站通信网络与系统-特定通信服务映射(SCSM)
  3. 2018.8.2 python中is和==的区别
  4. 优化云课堂直播间性能的一些思考与总结
  5. 【u009】瑞瑞的木板
  6. ubuntu16.04+opencv3.1配置
  7. undefined与null
  8. mysql metadata lock(二)
  9. 昨晚调试一段PHP程序时遇到的三个问题
  10. Javascript 脚本错误.