【Day19】用Bootstrap和Fontawesome来刻我们的计数器吧 (´∀`)!!

我们先来画我们的计数器吧!

为了让我们的计数器精美一点点点,

我们先来安装React的fontAwesome(一些icon)和React的bootstrap吧!

  • Fontawesome

      npm i --save @fortawesome/fontawesome-svg-core
      npm install --save @fortawesome/free-solid-svg-icons
      npm install --save @fortawesome/react-fontawesome
    
  • Bootstrap

    npm install react-bootstrap@next [email protected]
    

    React Bootstrap的参考文件

    • 安装完bootstrap後,需要在最底层的组件,也就是我们的APP.js里import bootstrap的css

      import 'bootstrap/dist/css/bootstrap.min.css';
      

先用Container,Row,Col来组装我们的Component

 <Container className="App" data-test="component-app">
      <Row>
       
      </Row>
      <Row>
        
         
      </Row>
      <Row className="justify-content-md-center">
           <Col xs lg={4}>
             
            </Col>
      </Row>
    </Container>

总共会要三行,第一行摆标题,第二行摆变动的数字,最後一行是要拿来放按键的!

  • 标题

    		 <Row>
                <h1>
                  How many hearts do you want to give me ?
                </h1>
            </Row>
    
  • 变动的数字

    import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
    import {faHeart} from '@fortawesome/free-solid-svg-icons'
    
    	<Row>
            <Col>
              <h1><FontAwesomeIcon icon={faHeart} style={{color:"red"}}/>&nbsp;&nbsp;
                  <span ></span></h1>
            </Col>
        </Row>
    
  • 按键

    <Row className="justify-content-md-center">
               <Col xs lg={4}>
                  <Button variant="primary"
                        size="lg"
                    >
                        Give me a heart !
                    </Button>
                </Col>
    </Row>
    

到这里我们先执行 npm start 打开画面,看一下长怎麽样 ↓

这个Component就快完成啦~ 现在我们缺的是那个变动的数字!

所以我们要用上一篇所提到的Hook来建立这个State。

  • 使用Hook建立count这个state

     const [count, setCount] = React.useState(0);
    
  • 将state显示在爱心後

     <Row>
            <Col>
                <h1><FontAwesomeIcon icon={faHeart} style={{color:"red"}}/>&nbsp;&nbsp;					<span>{count}</span>
                </h1>
            </Col>
          </Row>
    
  • 将setCount这个function绑定在按键上

        <Row className="justify-content-md-center">
               <Col xs lg={4}>
                  <Button variant="primary"
                        size="lg"
                        onClick={() => setCount(count + 1)}
                    >
                        Give me a heart !
                    </Button>
                </Col>
          </Row>
    

到这边,我们长得很一般般的计数器Component已完成,下一篇就要为这个Component写测试啦!

终於来到三分之二的边缘了~~好感动R ಥ⌣ಥ


<<:  字串的动次踏次,Ruby 30 天刷题修行篇第四话

>>:  第3砍 - 不亮也光

Day 29 - Summary

本文将於赛後同步刊登於笔者部落格 有兴趣学习更多 Kubernetes/DevOps/Linux 相...

[Day 29] 建立对外沟通的 API Server,谈谈 Ktor 框架

能够存取资料库了,有时我们可能会需要将资料库的内容,以 API 的形式,传输给其他的开发者。 这时候...

[Android Studio 30天自我挑战] Switch 元件介绍

这篇的Switch button与前几篇的ToggleButton很类似, 但ToggleButto...

Day 16 ATT&CK for ICS - Persistence(1)

攻击者进入 ICS 工控环境之後,会利用许多手法让自己保持跟 ICS 系统与设备的连线状态,让自己可...

追求JS小姊姊系列 Day6 -- 郑列展现的工具力(上)

前情提要 郑列疑似烙下狠话,正要展现工具实力?! 郑列:我说啊,你知道身为工具人要会做哪些事吗? 答...