学习React[七]

React的样式

目录

1.内联样式

2.styled_components

1.内联样式

import React, { PureComponent } from 'react'

export default class App extends PureComponent {

  constructor(props) {super(props);this.state = {
​      color: "orange"}
  }

  /*  内联样式的优点:
​    \1. 内联样式, 样式之间不会有冲突

​    \2. 可以动态获取当前state中的状态
  */

  /*  内联样式的缺点:

​    1. 写法上都需要使用驼峰命标识

​    2. 某些样式没有提示

​    3. 大量的样式,代码混乱

​    4. 某些样式无法编写(比如伪类/伪元素) 
  */
  render() {// 把 CSS 属性变成一个对象再传给元素,CSS属性名要是驼峰命名法const pStyle = {
​      color: this.state.color,
​      textDecoration: 'underline'}return (
      <div><h2 style={{ fontSize: '25px', color: 'pink' }}>我是一个标题</h2>
        <p style={pStyle}>我是一个段落</p></div>)
  }
}

2.styled_components

// index.js
import React, { Fragment, PureComponent } from 'react'

import {
  HomeWrapped,
  TitleWrapped
} from './style'

export default class Home extends PureComponent {
  render() {return (<Fragment><HomeWrapped><TitleWrapped className="title">我是Home的标题</TitleWrapped>

           <div className="banner"><span>轮播图1</span><span>轮播图2</span><span className='active'>轮播图3</span></div></HomeWrapped></Fragment>)
  }
}

使用styled-components

// 安装完styled-components,然后导入styled-components
import styled from 'styled-components';
 // styled.div就是你要给的标签,然后使用`` 写
export const HomeWrapped = styled.div`
  /* 因为 h2标签的font-size是 1.5em 所以比较大 */

  font-size: 18px;

  color: pink;

  .banner {
​    background-color: skyblue;
  }

  span {
​    color: #fff;

​    &.active {
​      color: red;

​    }

​    &:hover {
​      color: orange;
​    }

​    &::after {
​      content: "czm"
​    }
  }
`

export const TitleWrapped = styled.h2`
  text-decoration: underline;

`

styled-components 传递参数

import React, { Fragment, PureComponent } from 'react'

import styled from 'styled-components';

// .attrs({}) 可以定义变量,然后通过${props => props.bColor}拿到
const HYInput = styled.input.attrs({

  placeholder: 'czm',

  bColor: 'red',

})

`
  outline: none;

  background-color: lightblue;

  border-color: ${props => props.bColor};

  color: ${props => props.co}

`

/* 特点:

1. props穿透 

2.attrs使用

3.传入state作为props属性(动态) 

*/

export default class Profile extends PureComponent {

  constructor(props) {super(props);this.state = {
​      color: 'red'}
  }

  render() {return (<Fragment><HYInput type='text' co={this.state.color}/> <br/><input type='password'/><h2 className='title'>我是profile的标题</h2><ul className='setting'><li>设置列表1</li><li>设置列表2</li><li>设置列表3</li></ul></Fragment>)
  }
}

styled-components 属性的继承

import React, {PureComponent } from 'react'
import styled, {ThemeProvider} from 'styled-components'
import Home from '../Home/home'
import Profile from '../Profile/profile'

const HYButton = styled.button`

  padding: 10px 20px;

  border-color: red;

  color: pink;

  cursor: pointer;

`


// 把 HYButton中属性继承到 HYButtonUp里面
const HYButtonUp = styled(HYButton)`

  color: #fff;

  background-color: skyblue;

`

export default class App extends PureComponent {
  render() {return (<Home/><hr/><Profile/><HYButton>普通按钮</HYButton> <br/><HYButtonUp>升级按钮</HYButtonUp>)
  }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 学习 React 源码是一项很有益的学习活动,可以帮助你加深对 React 的理解,并且为你提供有关如何实现组件化和声明式编程的知识。 在学习 React 源码时,我有几个建议: 1. 先从官方文档入手,了解 React 的基本概念和使用方法。这将有助于你更好地理解 React 源码。 2. 认真阅读源码注释。React 的源码非常详细,并且有很多注释,这些注释很有帮助,可以帮助你理解源码的目的和工作原理。 3. 使用调试工具,以帮助你更好地理解源码的工作流程。比如,可以使用浏览器的开发者工具调试 React 代码,或者使用断点调试。 4. 尝试实现一些自己的功能,并结合源码来调试和理解。这将有助于你更好地理解 React 的工作原理,并且能够让你在实际使用中更加熟练。 5. 可以尝试加入 React 开源社区,与其他 React 开发者交流经验,也可以参与 React 的开源项目,为 React 贡献代码。这将有助于你不断学习和提升。 ### 回答2: 学习React源码是一个非常有挑战性但也非常有价值的任务。首先,我建议你先熟悉React的基本概念和使用方法,理解React的核心思想和设计理念,然后再深入研究源码。以下是一些具体的建议: 1. 掌握JavaScript和ES6的基础知识:React源码是用JavaScript编写的,因此对于JavaScript的理解是必要的。确保你对JavaScript中ES6的新特性例如模块导入导出、箭头函数、解构赋值等有一定的了解。 2. 阅读官方文档和源码注释:React官方提供了非常详细的文档和源码注释,阅读它们可以帮助你快速了解React的内部工作原理和实现细节。 3. 从顶层开始分析:从React的顶层入手,逐步深入源码。首先阅读React的入口文件,了解React是如何初始化和渲染组件的。然后再深入了解React组件的生命周期和更新机制。 4. 使用工具进行调试:使用Chrome DevTools等工具进行调试可以帮助你更好地理解和分析React的运行时行为。通过在源码中设置断点并观察变量的值,可以深入理解React的执行流程。 5. 理解虚拟DOM和协调算法:React的核心是虚拟DOM和协调算法,学习和理解它们对于深入理解React源码非常重要。阅读相关的源码实现,将有助于你理解React如何高效地更新DOM。 6. 参考社区资源和开源项目:React有一个非常庞大的社区,许多优秀的开源项目可以帮助你更好地理解React源码。与其他人一起学习和讨论,参与到React相关的开源项目中,将加快你的学习进度。 总结起来,学习React源码需要坚实的JavaScript基础和对React的理解。通过仔细阅读官方文档、源码注释和调试工具的使用,以及参考社区资源和开源项目,你将能够逐渐深入了解React的实现细节,提高自己的技术水平。 ### 回答3: 学习React源码的过程可以相当艰巨,但也是丰富而值得的。以下是几些建议帮助你更好地学习React源码: 1. 先理解React的核心概念:在深入研究源码前,先确保你对React的基本理念和工作方式有了清晰的理解。了解虚拟DOM、组件生命周期、状态管理和数据流等核心概念将有助于更好地理解源码。 2. 创建一个简单的React应用:在学习React源码时,建议你尝试创建一个简单的React应用并深入研究它的实现细节。这样可以帮助你更好地理解React的工作原理和内部机制。 3. 阅读React官方文档和源码注释:React源码中有丰富的注释,它们会对源码的实现细节进行解释和说明。同时,React官方文档也提供了很多有价值的内容,包括API文档和设计原则。阅读这些内容能够帮助你更好地理解React的思想和设计理念。 4. 利用调试工具:学习源码的过程中,调试工具是非常有用的辅助资源。使用断点和调试器来观察源码的执行路径和状态变化,可以帮助你更好地理解代码的运行机制。 5. 参考优秀的源码解析和开源项目:很多开发者在学习React源码后,会产生一些优秀的博客文章、视频教程和开源项目,其中包含了他们对源码的解析和实践。阅读这些资源可以帮助你更好地理解React源码并从中获取灵感。 学习React源码需要耐心和持续努力,希望以上建议能够帮助你更好地进行这个过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值