微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关于React中那些css不得不说的事儿

1.首先是样式引入,主要依赖的是babel的css-loader,这里是gitHub地址

很简单,只要在webpack.config.js中配置好

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/,use: [ 'style-loader','css-loader' ]
      }
    ]
  }
}

然后只要在文件中引入

import css from 'file.css';

当然,也可以使用其他的方式来编写样式,比如less,sass等等,方法也大致相同

顺便给几个git上的地址,方便使用 戳这里

2.另外再介绍一个方式,就是简单暴力一点,直接写在jsx的标签里面,就像这样

import React,{ Component } from 'react';

export default class MyApp extends Component {

    constructor(props) {
        super(props)
    }

    render() {
        return (
            <div style={{marginTop: 10}}>

            </div>
        )
    }
}

当然,我们也可以定义一个变量,就像定义一个类一样,

import React,{ Component } from 'react';

export default class MyApp extends Component {

    constructor(props) {
        super(props)
    }

    render() {

        const styles = {
            padding: 0
        }

        return (
            <div style={{marginTop: 10}}>
                <div style={styles}>
                </div>
                <div style={styles}>
                </div>
            </div>
        )
    }
}

那么问题来了,如果个别样式不一样呢? 接下来就可以这样

import React,{ Component } from 'react';

export default class MyApp extends Component {

    constructor(props) {
        super(props)
    }

    render() {

        const styles = {
            padding: 0
        }

        return (
            <div style={{marginTop: 10}}>
                <div style={Object.assign({},styles,{paddingTop: 10})}>
                </div>
                <div style={styles}>
                </div>
            </div>
        )
    }
}

这个Object.assign是干嘛的捏,可以理解成是类之间的继承,这样解释应该比较好理解

但是还有一个问题,因为这个方法比较新,所以并不是所有浏览器都支持的,比如说ios9以下的浏览器

那么这里就推荐一个类库---Ramda

这是一个类似lodash的数据处理类库,个人感觉还是比较好用的,遗憾的是暂时好像没有中文文档,但是先将就看一下吧,那么接下来我们就可以这样

import React,{ Component } from 'react';
import R from 'ramda';

export default class MyApp extends Component {

    constructor(props) {
        super(props)
    }

    render() {

        const styles = {
            padding: 0
        }

        return (
            <div style={{marginTop: 10}}>
                <div style={R.merge(styles,{paddingTop: 10})}>
                </div>
                <div style={styles}>
                </div>
            </div>
        )
    }
}

ok,这样就世界和平了,

React 中写css的方法还有很多,但是以上两种算是最常见的啦,嘿嘿

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如果组件之中有复用的代码,需要重新创建一个父类,父类中存储公共代码,返回子类,同时把公用属性...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例如我们的 setState 函数式同步执行的,我们的事件处理直接绑定在了 dom 元素上,这些都跟 re...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom 转为真实 dom 进行挂载。其实函数是组件和类组件也是在这个基础上包裹了一层,一个是调...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使用,可能是不了解。我公司的项目就没有使用,但是在很多三方库中都有使用。本小节我们来学习下如果使用该...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接触 react 就一直使用 mobx 库,上手简单不复杂。
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc 端可以使用分页进行渲染数限制,在移动端可以使用下拉加载更多。但是对于大量的列表渲染,特别像有实时数据...
本小节开始前,我们先答复下一个同学的问题。上一小节发布后,有小伙伴后台来信问到:‘小编你只讲了类组件中怎么使用 ref,那在函数式组件中怎么使用呢?’。确实我们...
上一小节我们了解了固定高度的滚动列表实现,因为是固定高度所以容器总高度和每个元素的 size、offset 很容易得到,这种场景也适合我们常见的大部分场景,例如...
上一小节我们处理了 setState 的批量更新机制,但是我们有两个遗漏点,一个是源码中的 setState 可以传入函数,同时 setState 可以传入第二...
我们知道 react 进行页面渲染或者刷新的时候,会从根节点到子节点全部执行一遍,即使子组件中没有状态的改变,也会执行。这就造成了性能不必要的浪费。之前我们了解...