ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • React.js(5) - Reactstrap 요소 설명(1)
    웹 개발/React.js 2023. 3. 29. 17:05

    Alert

    - Alert : 삭제 기능이 없는 기본 알림 기능 배찌

    - UncontrolledAlert : 삭제 기능(x버튼)이 있는 알람 기능 배찌 

    import React from "react";
    import { Component } from "react";
    import {Alert, UncontrolledAlert} from 'reactstrap';
    //{Alert} : 기본 알림 기능 배찌
    //{UncontrolledAlert} : 삭제 기능(x버튼)이 추가된 알림 기능 배찌
    
    //Alerts 띄우기 (x창 달린 배찌 형식의 것)
    
    class R034_ReactstrapAlerts extends Component {
        render() {
            return(
                <div>
                    <Alert color = "light">
                        Simple Alert [color : light] 
                        //Simple Alert [color : light]라고 출력된 배찌가 화면에 보임
                    </Alert>
                    <UncontrolledAlert color="warning">
                        UncontrolledAlert [color : warning]
                    </UncontrolledAlert>
                </div>
                //UncontrolledAlert [color : warning]이라는 문구가 그대로 써진 빼찌가 출력됨
            )
        }
    
    }

     

    Badge

    - Alert 창보다 작은 배찌라고 생각하면 됨. 비슷하지만 용도가 다르다. 

    import React, {Component} from 'react';
    import {Badge, Button} from 'reactstrap';
    
    class R035_ReactstrapBadges extends Component {
        render() {
            return(
            <div>
    
                <h1>PRODUCT NAME 
                    <Badge color ="secondary" >
                        hit
                    </Badge>
                    //텍스트 옆에 배찌를 추가하게 되면 상품 hit, 세일 상품(sale)등의 부가설명 가능
                </h1>
                <Button color = "light" outline>
                    Accessor <Badge color = "dark">4</Badge>
                    //Accessor : 접속자수(버튼 안 배찌)
                    //접속자수, 메세지 수와 같은 속성 수치 표현할 때 button안에 badge 넣기 좋음 
                </Button>
                <Badge color ="danger" pill>pill</Badge>
                //pill 속성은 테두리 둥글게 적용함 
                <Badge href="http://www.example.com" >
                    GoLink
    
                </Badge>
            </div>
            )
        }
    }
    
    export default R035_ReactstrapBadges;

    - Badge 안에 pill 속성을 주면 테두리를 둥글게 만들 수 있음 --> 예쁘게 꾸미기 가능

    - 주로 Button 안에 Badge를 넣는 형식으로 만든다.(Badge와 Button이랑 친구이다.)

     

    Breadcrumb,BreadcrumbItem

    - 페이지 위치경로를 지정한 웹 내비게이션에 사용한다.

    - 웹 사이트 상단에 표시되는 메뉴 리스트에 사용

    이런게 breadCrumb이다.

    import React from "react";
    import { Component } from "react";
    import { Breadcrumb,BreadcrumbItem } from "reactstrap";
    
    //BreadCrumbs : 페이지 위치경로를 지정한 웹 내비게이션 에 사용
    //웹 사이트 상단에 표시되는 메뉴 리스트에 사용
    //특정 메뉴를 선택하면 해당하는 웹 페이지로 넘어갈 수 있도록 함 
    class R036_ReactstrapBreadcrumbs extends Component {
        render() {
            return (
                <div id = "top">
                    <Breadcrumb tag = "nav" listTag="div">
                        //Breadcrumb 안에서 태그들을 생성하는 것이 가능함(tag="nav", listTag="div")를 넣어주었고, nav바 안에 div들이 list로 들어감 
                        <BreadcrumbItem tag="a" href="#top">Go_top</BreadcrumbItem>
                        //id=top으로 간다는 의미가 된 즉 위의 div id = top으로 간다는 것 
                        <BreadcrumbItem tag="a" href="#bottom">Go_Bottom</BreadcrumbItem>
                        //위에서 만든 div 태그들을 BreadcrumbItem으로 받아오고 a 태그를 넣어준다.(nav>div>a)로 넣어주는 것. 여기다가 href 속성을 넣어주어 이동할 태그의 링크를 넣어주는데, #bottom은 bottom이라는 태그의 id값의 내용으로 이동한다는 의미
                    </Breadcrumb>
                    <div id = "bottom" style = {{marginTop:"1000px"}}><span>bottom</span></div>
                </div>
            )
        }
    }
    
    export default R036_ReactstrapBreadcrumbs;

     

    Dropdown(드롭다운)

    - 자바스크립트 코드가 기본적으로 들어간다. (isOpened, isNotOpened 상태 처리)

    import React from "react";
    import { Component } from "react";
    import {ButtonDropdown, DropdownToggle, DropdwonItem, DropdownMenu} from 'reactstrap;'
    
    //Dropdown 패키지 : 대표 메뉴를 클릭하면 -> 하위 메뉴 리스트 표시 (여기서 이 하위 메뉴리스트 상태가 표시인지 미표시인지도 정보 필요함)
    
    class R037_ReactstrapDropdown extends Component {
        constructor (props) {
            super(props);
            
            this.state = {
                DropdownOpen : false  //Dropdownopen 변수를 설정하고 false 값을 넣음 (not)의 값만 지정해준 것 + constructor을 통해서 초기값을 설정해줌 
    
            }
        }
    
        toggle = () =>{
            this.setState({dropdownopen : !this.state.DropdownOpen})
        }
    
        render() {
            return (
                <ButtonDropdown isOpen = {this.state.DropdownOpen} toggle = {this.toggle}>
                    //isOpen 기능은 ButtonDropdown에 특화된, 버튼을 누르면 열수있는 기능이고, 
                    <DropdownToggle caret>
                        버튼 Dropdown
                    </DropdownToggle>
                    <DropdownMenu>
                        <DropdwonItem header> 헤더 부분</DropdwonItem>
                        <DropdwonItem disabled>비활성화 버튼</DropdwonItem>
                        <a href="http://example.com/"><DropdwonItem>웹 사이트 이동 소메뉴도 넣어봄</DropdwonItem></a>
                        <DropdwonItem onClick={e => alert("Alert버튼")}>
                            이걸 누르면 Alert창이 뜹니다. 
    
                        </DropdwonItem>
                    </DropdownMenu>
                </ButtonDropdown>
            )
        }
    }
    
    export default R037_ReactstrapDropdown;

     

    드롭다운 상태 정의 

    this.state= {
        DropDownOpen : false;
    }

    초기 상태 지정 변수를 DropDownOpen이라고 두고, 변수가 저장할 상태를 false로 지정해준다. 

     

     

    ButtonGroup

    - 비슷한 형태와 기능들의 버튼은 그룹으로 묶어 관리해주어야 한다.

     

    import React from "react";
    import { Component } from "react";
    import {Button, ButtonGroup} from 'reactstrap';
    
    class R038_ReactstrapButtonGroup extends Component {
        constructor (props) {
            super(props);
            this.state = {number : 10};
        }
    
        move = (type, e) => {
            if(type === "Left") {
                this.setState({number : this.state.number -1})
            } else if(type ==="Right"){
                this.setState({number : this.state.number + 1})
            } else {
            this.setState({number : this.state.number})
    
    
        };
        //onClick = {e => this.move}에서 호출되는 함수로 move는 type값을 아래에서 파라미터로 받고, Left, Right를 type 파라미터로 받게 되면 현재 state를 변경한다 .
    
        render() {
            return (
                <div stype = {{padding : "0px"}}>
                    <ButtonGroup style = {{padding : "0px"}}>
                       <Button onClick ={e => this.move('Left')}>Left</Button>
                       <Button onClick = {e => this.move('Middle')}>Middle</Button>
                       <Button onClick = {e => this.move('Right')}>Right</Button>
                    </ButtonGroup><br/>
                    {this.state.number}
                </div>
                //비슷한 기능을 하는 버튼들을 <ButtonGroup>으로묶어서 사용하는데, 각각의 Button을 누를 때마다 move() 함수를 호출한다. (move함수는 위에서 정의함 )
    
            )
        }
    }
    
    export default R038_ReactstrapButtonGroup;

    Button에 함수를 주기 위해서는 onClick속성을 써야 한다. 

    Button onClick =()=> {
        e => this.move('어디로 움직일지 타입설정')
        
    }

    조건에 따른 버튼에 대한 함수를 각각 주기 위해서는 다음과 같이 move를 if~ type~으로 나눠서 코드를 짜야 한다. 

     move = (type, e) => {
            if(type === "Left") {
                this.setState({number : this.state.number -1})
            } else if(type ==="Right"){
                this.setState({number : this.state.number + 1})
            } else {
            this.setState({number : this.state.number})

    - 아래에 버튼에서 onClick을 하게 되는 동작이벤트가 설정되어 있으므로, e를 받아와야 한다. 

     

    Card

    - Card에 들어가야 할 모든 요소를 불러와주어야 한다. 

     

    '웹 개발 > React.js' 카테고리의 다른 글

    React.js(7) - SweetAlert2  (0) 2023.04.05
    React.js(6) - Reactstrap 요소 설명(2)  (0) 2023.04.05
    React.js(4) - Proptypes  (0) 2023.03.29
    React.js(3) - jquery  (0) 2023.03.21
    React.js(2) - Props  (0) 2023.03.21
Designed by Tistory.