在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 submit()无法提交问题
Apr 21 Javascript
jquery ajax属性async(同步异步)示例
Nov 05 Javascript
超级简单的jquery操作表格方法
Dec 15 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
Jun 05 Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
Oct 24 Javascript
JavaScript易错知识点整理
Dec 05 Javascript
jQuery向webApi提交post json数据
Jan 16 Javascript
JavaScript实现弹窗效果代码分析
Mar 09 Javascript
浅谈mvvm-simple双向绑定简单实现
Apr 18 Javascript
详解angular如何调用HTML字符串的方法
Jun 30 Javascript
基于JavaScript伪随机正态分布代码实例
Nov 07 Javascript
详解Vue 单文件组件的三种写法
Feb 19 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
第十二节 类的自动加载 [12]
2006/10/09 PHP
php 前一天或后一天的日期
2008/06/28 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
利用php获得flv视频长度的实例代码
2017/10/26 PHP
起点页面传值js,有空研究学习下
2010/01/25 Javascript
js判断undefined类型示例代码
2014/02/10 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
JavaScript实现给按钮加上双重动作的方法
2015/08/14 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
JavaScript数组类型Array相关的属性与方法详解
2020/09/08 Javascript
详解python的数字类型变量与其方法
2016/11/20 Python
手把手教你python实现SVM算法
2017/12/27 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
MySQL面试题
2014/01/12 面试题
小区门卫岗位职责
2013/12/31 职场文书
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
网吧消防安全责任书
2014/07/29 职场文书
个人工作表现自我评价
2015/03/06 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
唐山大地震观后感
2015/06/05 职场文书
英语教学课后反思
2016/02/15 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书