react-autosuggest的css怎么存放

网上科普有关“react-autosuggest的css怎么存放”话题很是火热,小编也是针对react-autosuggest的css怎么存放寻找了一些与之相关的一些信息进行分...

网上科普有关“react-autosuggest的css怎么存放 ”话题很是火热,小编也是针对react-autosuggest的css怎么存放寻找了一些与之相关的一些信息进行分析 ,如果能碰巧解决你现在面临的问题 ,希望能够帮助到您 。

在React中使用CSS Modules设置样式

最近,一直在看React 。。。那真的是一个一直在学的过程啊,从配置环境webpack ,到基础知识jsx,babel,es6 ,没有一个不是之前没有接触的 。其实,我内心是兴奋的啊,毕竟 ,活着就是要接触一些新的东西啊,那样才有意思啊。

反正多学点,肯定是没错的。哈哈 。。。进入正题啦

我一看到CSS Modules这个词我就懵了 ,毕竟在我印象中,CSS高端一点的就是用SASS,LESS定义变量啊 ,写个嵌套什么的 ,Modules是什么鬼啊 。学新东西都是这样,一开始,好奇在拒绝 ,坚持看下去,大概就明白了。

1. CSS Modules引入目的

写过CSS的人,应该都对一大长串选择器选中一个元素不陌生吧 ,这种方式,其实定义的就是全局样式,我们时常会因为选择器权重问题 ,没有把我们想要的样式加上去。

另外,每次都需要把所有的样式表都导入到程序中,如果我们可以像使用js模块一样 ,想用哪块就用哪块,是不是就很理想了 。

CSS Modules就解决了这个问题,它自动为每一个类生成一个哈希值 ,可以惟一标志这个类 ,因此避免了我们说的第一个问题,它让我们可以像使用js模块那样,想用哪部分样式 ,就引入哪部分样式。下面我们来具体介绍它的使用方法。

2.CSS Modules使用方法

1) 如何在开启CSS Modules

首先,你需要配置好你的webpack环境,因为我们需要webpack的css-loader加载器中配置选项 ,开启CSS Modules,你可查看css-loader文档,你会发现下面这个表格

这就是css-loader的参数表 ,其中你的webpack-config.js中loader字段中的css-loader配置后面添加modules,就可以开启CSS Modules 。如下图所示:

现在,你已经可以在你的项目中使用CSS Modules功能了 。

2)CSS Modules用法

1.基本使用方法

在你的项目中 ,添加一个CSS文件,然后你就可以像引入js模块一样,在你的js文件中引入这个文件存放到一个对象中。这个对象中是一个包含连个属性的对象 ,其值就是自动生成的类名。这个类名也会替换页面中的类名 。

/* style.scss */.bgRed {

background-color: #f00;

}

/* app/app.js */import React, {Component} from 'react';

import ReactDOM from 'react-dom';/* 引入我们定义的.scss文件 */import styles from '../style/style.scss';/* 使用无状态函数定义我们的组件*/function Title() {

console.log(styles); /* 打印引入的styles ,是一个包含连个属性的对象,其值就是自动生成的类名

Object {white: "_24PAw-tvdzL8pt4nyAvnJX", bgRed: "_2R9YNZv7rx_o02FHxKTBzC"} */

return ( /* 在组件中引用 */

<h1 className={styles.bgRed}>Hello React!</h1> );

}/* 渲染到页面中 */ReactDOM.render(<Title />, document.body );

最终页面结构,如下图所示:

2. 自定义命名规则

上面生称的类名 ,完全是自动生成,如果自己自己规定命名规则呢,也是很简单的 ,只需要在上面配置modules后面添加&localIdentName=配置规则,如:

'css-loader?modules&localIdentName=[name]__[local]-[hash:base64:5]'?//style__bgRed-2R9YN,local对应所在文件夹名,local对应文件名 ,最后是哈希值

3. 全局类名和本地类名

我们可以使用:global(className)来标识这个类是全局类名,因此CSS Modules不对其类名进行转化,:local(className)则相反 ,如果不用这两个包裹的话,默认是local.

/* style.scss */.bgRed {

background-color: #f00;

}

// 添加全局bgRed

:global(.bgRed) {

background-color: #f00;

}

/* app/app.js */import React, {Component} from 'react';

import ReactDOM from 'react-dom';/* 引入我们定义的.scss文件 */import styles from '../style/style.scss';/* 使用无状态函数定义我们的组件*/function Title() {

console.log(styles);

return ( /* 在组件中全局的bgRed,此时我们可以访问到我们全局定义的bgRed,它并没有被转化 */

<h1 className="bgRed"}>Hello React!</h1> );

}/* 渲染到页面中 */ReactDOM.render(<Title />, document.body );

4. 使用composes组合样式

我们知道 ,node.js中 ,我们可以用require引入模块,然后使用它们。CSS Modules也提供了composes来该文件中的样式规则,甚至引用其它文件中的样式规则。

/* style/style.scss */.fontWhite {

color: #fff;

}.bgRed {

composes: fontWhite;

background-color: #f00;

}

/* app/app.js */import React, {Component} from 'react';

import ReactDOM from 'react-dom';/* 引入我们定义的.scss文件 */import styles from '../style/style.scss';/* 使用无状态函数定义我们的组件*/function Title() {

console.log(styles); /* 打印引入的styles ,是一个包含连个属性的对象,其值就是自动生成的类名

Object {fontWhite: "style__fontWhite-3jipu", bgRed: "style__bgRed-2R9YN style__fontWhite-3jipu"}rx_o02FHxKTBzC"} */

return ( /* 在组件中引用 */

<h1 className={styles.bgRed}>Hello React!</h1> );

}/* 渲染到页面中 */ReactDOM.render(<Title />, document.body )

此时,就是添加了两个类 ,html结构如下图:

引入其它文件中的样式规则,写composes: className(要引入的类名) from '引入的文件路径即可',最终效果同上 ,composes多少规则,就添加多少类 。

最后:大家有名有发现,我一直都在类上做文章 ,那是因为CSS Modules只转换class名相关的样式。大家要注意啦。

在最后,给大家提供一个js库——classnames类库,给我的感觉和angular中的ng-class差不多 ,将值为true的类添加上 。

npm?install?babel-plugin-css-modules-transform?-D

根目录添加一个.babelrc的文件 ,写入:

{

"plugins":?["css-modules-transform"]

}

layout.js

import?CustomCss?from?'./a.css'

<div?className='CoustomCss.hahaha'>

111111

</div>

a.css

.hahaha?{?background-color:?red;?}

关于“react-autosuggest的css怎么存放 ”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[姓玉卿]投稿,不代表石号立场,如若转载,请注明出处:https://s0429.com/cshi/202512-2141.html

(148)

文章推荐

  • 校园安全教育内容有哪些?

    网上科普有关“校园安全教育内容有哪些?”话题很是火热,小编也是针对校园安全教育内容有哪些?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。校园安全教育应该有下列内容:一、课间活动安全教育1、不跳楼梯,不从高处往下跳,不爬栏杆,不滑扶手,不做有危险的活动。2、上

    2024年12月15日
    34
  • 为什么危化品培训三年考一次

    网上科普有关“为什么危化品培训三年考一次”话题很是火热,小编也是针对为什么危化品培训三年考一次寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。根据现行规定,危险化学品生产经营单位安全培训合格证(危化品安全资格证)须每年接受继续教育一次,满三年换证(年审)一次。

    2024年12月15日
    28
  • 医林正骨丨“倒走”真的简单养生?

    网上科普有关“医林正骨丨“倒走”真的简单养生?”话题很是火热,小编也是针对医林正骨丨“倒走”真的简单养生?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。“天天倒退走,活到九十九。”相信这句谚语,不少朋友们都有所耳闻。一直以来,“倒退

    2024年12月15日
    77
  • 新冠状病毒疫情最新情况(新型冠状病毒疫情 最新)

    全国最新疫情感染症状1、目前全国新型冠状病毒感染者的常见症状如下:主要症状:多数感染者以发热、乏力、干咳为核心表现。发热多为中低度(33℃-39℃),部分患者无明显发热,仅表现为乏力或呼吸道症状。干咳通常无痰或痰量极少,与普通感冒的咳痰症状形成对比。2、新型肺炎疫情的症状主要分为常见症状、其他伴随

    2025年11月22日
    33
  • 北京海淀新增5例感染者(北京海淀新增3例)

    11月5日15时—6日15时北京各区新增感染者风险点位_北京海淀新增感染者5例,主要风险点位公布11月5日15时-11月6日15时,海淀区新增本土新冠肺炎病毒感染者5例,其中1例为社会面筛查人员,均已转入定点医院治疗。【】_北京昌平新增本土7+1,点位公布11月5日15时—6日15时,昌平区新增7

    2025年11月22日
    34
  • 关于31省增本土确诊1164的信息

    全国确诊人数是多少?目前暂无全国新冠感染总人数的官方数据,但部分月份的新增病例数有公开记录。以下是2023年部分月份的新增确诊病例数据整理:2023年1月1月1日-1月31日,全国31个省(自治区、直辖市)及新疆生产建设兵团共报告新增确诊病例33218例。2023年2月2月1日-2月2

    2025年11月26日
    27
  • 苏州最新的疫情情况(苏州最新疫情情况报告)

    江苏苏州疫情最新消息风险等级:截至最新通报,苏州全域为低风险地区。根据江苏省卫生健康委员会11月24日0-24时数据及后续补充信息,苏州未划定中高风险区域,符合低风险地区标准(即无确诊病例或连续14天无新增本土病例)。疫情数据:全省层面:11月24日0-24时,江苏无新增本土确诊病例及无症状感染

    2025年12月01日
    18
  • 科普知识竞赛试题及答案小学生版(2020小学科普知识竞赛题目70道)

    三年级“十万个为什么”科普知识竞赛试题及答案1、判断题,对的打“√”,不对的打“×”。(每题3分,共45分)()有些树秋天不落叶,所以它们永远不会衰老和死亡。()蜗牛的身体跟蚂蚁的身体相似,都是分为头、胸、腹三部分。()只听说过虫吃草,绝对没有草会捕虫的事发生。()空气没有重量,所以它漂浮

    2025年12月05日
    10
  • 山西新增本土确诊2例(山西新增确诊一例)

    山西太原有疫情么山西太原韵达快递公司发现36例阳性病例,此次疫情存在“物传人”风险,相关物流场地已封闭,当地已采取紧急防控措施。事件核心:14日凌晨,山西新冠肺炎防控指挥部办公室发布紧急通告,太原韵达快递公司核酸检测报告中发现36例阳性病例,疫情存在“物传人”风险。山西太原有疫情。2022-11-

    2025年11月29日
    24
  • 石家庄疫情最新数据消息今天新增(石家庄疫情最新情况 最新消息 新增)

    直击石家庄!关闭核酸亭致信市民,另多家核酸机构被查,8家立案石家庄取消常态化核酸检测,多家核酸机构被查,8家立案,反映出疫情防控政策调整与核酸产业监管加强的双重趋势。石家庄取消常态化核酸检测的背景与措施政策依据:随着“新二十条”政策落地,全国多地取消全员核酸检测,石家庄作为先行城市,宣布取消常态化

    2025年12月03日
    12

发表回复

本站作者后才能评论

评论列表(4条)

  • 姓玉卿
    姓玉卿 2025年12月07日

    我是石号的签约作者“姓玉卿”!

  • 姓玉卿
    姓玉卿 2025年12月07日

    希望本篇文章《react-autosuggest的css怎么存放》能对你有所帮助!

  • 姓玉卿
    姓玉卿 2025年12月07日

    本站[石号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • 姓玉卿
    姓玉卿 2025年12月07日

    本文概览:网上科普有关“react-autosuggest的css怎么存放”话题很是火热,小编也是针对react-autosuggest的css怎么存放寻找了一些与之相关的一些信息进行分...