일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- jenkins
- tool
- laravel
- 요리
- Oracle
- MySQL
- ReactJS
- Spring Batch
- java
- redis
- it
- devops
- javascript
- db
- linux
- Design Patterns
- 맛집
- IntelliJ
- Spring
- Spring Boot
- Gradle
- Web Server
- ubuntu
- elasticsearch
- AWS
- php
- JVM
- Git
- jsp
- springboot
- Today
- Total
목록Javascript & HTML & CSS/reactjs (25)
아무거나
Scroll Down 구현 // Render DOM // ref가 지정된 곳으로 포커싱이 될 예정이다. forEach({ .... }) // 스크롤 다운 함수 async handleScrollDown() { if (this.scrollLocationRef && this.scrollLocationRef.current) { this.scrollLocationRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' }) } } // 실행되는 함수 // 동적 추가할 때 마다 새로 생성된 행의 Ref를 찾을 수 없어서 우선 재귀함수로 해결.. (__) this.handleScrollDown().then(() => { this.handleScrollDown(..
ex) path: /boards/:boardNo const boardNo = match.params.boardNo ex) path: /detail/:type const type = match.params.type
history.push() 가 동작이 안하는 경우가 있다. 이럴 경우 컴포넌트 설계나 선언부 측에 문제가 있다. 하지만 급하게 수정해야 할 경우 아래와 같이 작업하자. // react 링크 이동 안될때 태그를 활용 // react 페이지 reload 안될 때 꼼수(주소가 동일할 경우 발생) -> 해당 방법은 진짜 급한경우가 아니면 절대로 사용하지 말자.. route 에서 redirect를 이용 ex) /app/user/reload -> /app/user 왠만하면 커스텀 팝업같이 표시해야 하는 경우는 제일 상위 컴포넌트 레벨에 선언하고 하위 컴포넌트로 전달받아 사용하도록 하자.
Redux 리덕스는 상태관리 라이브러리이다. 리덕스는 우리가 만드는 컴포넌트들의 상태 관련 로직들을 다른 파일들로 분리시켜서 더욱 효율적으로 관리 할 수 있습니다. 또한, 컴포넌트끼리 상태를 공유하게 될 때 여러 컴포넌트를 거치지 않고도 손쉽게 상태 값을 전달 할 수 있다. 아래 그림을 참고하자. 왼쪽은 Redux를 적용하지 않은것이고, 오른쪽은 Redux를 사용한것이다. 위의 이미지의 왼쪽 그림에서 만약 A에서 B로 데이터가 변경되거나 렌더를 다시해야 될 때 과정은 화살표 방향처럼 연결되어 있는 다른 컴포넌트들에게 상태가 전달된다. 이러한 나뭇가지식 관리를 하게 된다면 향 후 관리범위가 많아져서 골치아픈 상황이된다. 이러한 부분을 개선하고자 Redux를 사용하게 된 것이다. Redux는 Applicat..
Typescript with React + Redux 프로젝트 생성 먼저 타입스크립트 기반 프로젝트를 생성 create-react-app react-typescript-redux-example-1 --scripts-version=react-scripts-ts // 실행방법 cd react-typescript-redux-example-1 yarn start 원활한 개발 환경을 위하여 tslint 설정값을 수정하자. [tslint.json] { "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"], "linterOptions": { "exclude": [ "config/**/*.js", "node_modules/**/*.ts"..
React-Router React-Router란 특정 URL로 유저가 접근했을 때, URL을 해석하여 기존에 개발자가 선언한대로 요청한 URL에 알맞는 React Component를 렌더링해서 보여주는 역할 Facebook 공식 라이브러리는 아니지만 React 관련 Router 라이브러리 중에서는 가장 많이 사용 React Router V4 React Router의 최신버전 React Router v3, 그 이하와는 API가 다름 V3도 여전히 유지보수 진행중 대부분의 동작이 React Component로 이루어짐 React Router 설치하기 전에.. 기존에 create-react-app이 설치되어있어야 한다. create-react-app . --scripts-version=react-scripts..
Component Props, State Props 컴포넌트 외부에서 컴포넌트로 넣어주는 데이터(함수도 가능) 컴포넌트 내부에서는 자신의 props를 변경할 수 없다. 물론 돌아가면 가능은 하다. 컴포넌트 외부에서 props 데이터를 변경하면, render가 다시 호출된다. State 컴포넌트 내부의 데이터 클래스의 프로퍼티와는 다르다. 프로퍼티는 변경한다고 render가 호출되지 않는다. 생성자 혹은 프로퍼티 초기 할당으로 state를 초기 할당 해줘야 한다. 내부에서 변경을 하더라도 setState 함수를 이용해야 render가 호출된다. 초기 세팅시 주의할 점(state 초기 할당 관련) [index.tsx] import * as React from 'react'; import * as ReactD..
React 프로젝트 생성 Create React App Create React App은 React의 작업 환경을 자동으로 구축해준다. Dan Abamov가 만들었다(Redux를 만든사람으로 유명하다) 프로젝트 생성 create-react-app {프로젝트명} 개발 서버 실행 npm run start 프로덕션 빌드 npm run build 테스트 npm run test 프로젝트의 구조가 바뀜(ex:위험도가 높으므로 사용을 지양) npm run eject pwa(Progressive Web App) 적용 Create React App 설치 create-react-app global 설치 npm i create-react-app -g // create-react-app {프로젝트명} 으로 설치 // .은 현재..
React 해당 내용을 보기전 react기본 의 react-app-example-1 부터 선행하시면 좋습니다. React? React Component: 작업의 단위 Virtual DOM: Virtual DOM으로 그린다음에 변경 되기 전의 상황과 변경 된 후의 Virtual DOM의 State들을 비교해서 바뀐부분(=diff)만 추출해내서 그 부분만 다시 render를 해주는것이 react의 핵심이다. (State Change -> Compute Diff -> Re-render) JSX Javascript XML - JSX 자체는 문법 리액트에서는 JSX.Element로 그려질 Component를 표현한다. React.createElement 함수를 통해서도 JSX.Element 를 만들수 있다. [J..
Update와 Delete 업데이트 기능 구현 src/component/CreateContent.js를 복사하여 UpdateContent.js 로 생성한다. [UpdateContent.js] import React, { Component } from 'react'; class UpdateContent extends Component { render() { console.log('UpdateContent render') return ( Update ) } } export default UpdateContent; App.js에서 UpdateContent를 사용하기 위해서 mode에 Update관련 로직을 추가를 해준다. [App.js] import React, { Component } from 'react'..