在create-react-app中使用css modules的示例代码


Posted in Javascript onJuly 31, 2018

前言

如果我们从零开始用webpack + es6来结合react开发前端应用,那势必会在各种webpack配置中消耗大量精力,于是便有了各种脚手架,create-react-app就是其中之一。
对于css modules,在react中,通常用它来避免预料之外样式规则相互覆盖以及实现其他功能。

配置弹出配置文件

如果直接使用create-react-app搭建一个项目,所有的配置文件都被隐藏了,整个目录就先这样

在create-react-app中使用css modules的示例代码 

所以,第一步是将所有的配置文件弹出,在根目录运行以下代码

npm run eject

弹出之后的文件目录就先这样

在create-react-app中使用css modules的示例代码 

多了script与config两个文件夹

配置相关文件

打开config文件夹

在create-react-app中使用css modules的示例代码 

我们需要配置webpack.config.dev.js,如果需要将项目打包输出的话还得配置webpack.config.prod.js,不过两个文件配置方法是相同的,以webpack.config.dev.js为例。

搜索css-loader,找到这段代码

在create-react-app中使用css modules的示例代码 

如果没有配置css modules的话,options中是没有modules选项的,将其设置上即可

使用

我们以一个todo项目的list组件为例简单介绍一下在react中使用css modules。这个list组件就是一个ul将要做的事项列出来,效果如下

在create-react-app中使用css modules的示例代码 

吃饭、碎觉就是list组件的展示

先来看css怎么写,很简短的代码如下

.theList{
  list-style: none;
  padding-left: 0;
  width: 255px;
}

.theList li{
  color: #333;
  background: rgba(255,255,255,0.5);
  padding: 15px;
  margin-bottom: 15px;
  border-radius: 5px;
  cursor: pointer;
}

文件名就叫TodoItem.css

jsx文件如下

import React from 'react';
import styles from './TodoItem.css';

class TodoItem extends React.Component {
  constructor(props){
    super(props);
    this.handleChange = this.handleChange.bind(this);
  }

  handleChange(e){
    this.props.onDelete(e.target.getAttribute('name'));
  }

  render(){
    let todoEntries = this.props.entries;
    return (
      <!-- 引用样式 -->
      <ul className={styles.theList}>
        {todoEntries.map((item)=>{
          return (
            <li key={item.key} onClick={this.handleChange} name={item.key}>{item.text}</li>
          )
        })}
      </ul>
    )
  }
}

export default TodoItem;

这样,我们在控制台中查看

在create-react-app中使用css modules的示例代码 

在create-react-app中使用css modules的示例代码 

在create-react-app中使用css modules的示例代码 

相关className被编译成哈希字符串,而且在不同文件中引入哈希字符串并不相同

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 性能优化指南(2)
May 21 Javascript
js网页中的(运行代码)功能实现思路
Feb 04 Javascript
html5 canvas js(数字时钟)实例代码
Dec 23 Javascript
js中生成map对象的方法
Jan 09 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
Aug 07 Javascript
Bootstrap框架下下拉框select搜索功能
Mar 26 Javascript
vue脚手架vue-cli的学习使用教程
Jun 06 Javascript
详解webpack进阶之插件篇
Jul 06 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
Aug 03 Javascript
express框架中使用jwt实现验证的方法
Aug 25 Javascript
使用vue实现一个电子签名组件的示例代码
Jan 06 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
Sep 12 Javascript
详解使用create-react-app添加css modules、sasss和antd
Jul 31 #Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 #jQuery
Vue导出页面为PDF格式的实现思路
Jul 31 #Javascript
详解微信小程序实现WebSocket心跳重连
Jul 31 #Javascript
前端axios下载excel文件(二进制)的处理方法
Jul 31 #Javascript
JS构造一个html文本内容成文件流形式发送到后台
Jul 31 #Javascript
vue导出html、word和pdf的实现代码
Jul 31 #Javascript
You might like
收音机指标测试方法及仪器
2021/03/01 无线电
php短域名转换为实际域名函数
2011/01/17 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
PHP 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
Mootools 1.2教程 类(一)
2009/09/15 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
JS 表单验证大全
2011/11/23 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
创建一个类Person的简单实例
2016/05/17 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
javascript前端和后台进行数据交互方法示例
2020/08/07 Javascript
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
职称自我鉴定
2013/10/15 职场文书
护理专科毕业生自荐书范文
2014/02/19 职场文书
成龙洗发水广告词
2014/03/14 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
党支部考察鉴定意见
2015/06/02 职场文书