소개
- [실전 리액트 프로그래밍] 저자
- react contributor (PR 링크)
- if kakao 2019 컨퍼런스에서 [리액트: 그것마저 결정해주마] 발표
- 카카오페이지 글로벌웹 개발 중
강의
수강평
게시글
질문&답변
[함수타입2] 함수 this에 대한 타입 부분, 제가 제대로 이해했을까요?
안녕하세요값과 타입을 구분해서 이해하시는 게 좋을 것 같습니다. * 값 측면: String의 프로토타입에 추가한 함수는 this가 string입니다* 타입 측면: (값에서)this가 string이기 때문에 타입도 그렇게 정의합니다 만약 getParam을 Object의 프로토타입에 추가했다면 타입 측면에서는 타입 에러가 발생하고, 값 측면에서는 런타임 에러가 발생합니다. getShortKeys도 마찬가지입니다 * 값 측면: Object의 프로토타입에 추가한 함수는 this가 object입니다* 타입 측면: (값에서)this가 object이기 때문에 타입도 그렇게 정의합니다
- 0
- 1
- 165
질문&답변
자동완성기능이 안되네요 ..
realreact 내부에 있는 모든 폴더가 비어있네요(js 파일이 하나도 없는 것 같아요)
- 0
- 3
- 321
질문&답변
자동완성기능이 안되네요 ..
안녕하세요구글 드라이브 접근 권한이 없어서 요청했습니다.
- 0
- 3
- 321
질문&답변
setValue 함수 질문 있습니다.
안녕하세요createSetValueAction는 함수를 반환하고 있는데요그래서 아래처럼 생각하시면 이해가 쉬울 것 같습니다export const actions = { setValue: (key, value) => ({ type: Types.SetValue, key, value }), ... };createSetValueAction를 호출하는 순간에 key, values는 값이 아니고 함수의 매개변수를 표현한 것이라고 이해하시면 될 것 같습니다
- 0
- 1
- 663
질문&답변
yield 입력값
안녕하세요첫 next 실행은 아래 코드를 실행하지 않고 그 직전에 멈춥니다const data1 = yield;두 번째 next 실행에서 위 코드를 실행하면서 data1에 값이 들어갑니다
- 0
- 1
- 259
질문&답변
찾아야한다 실습 문의
안녕하세요제보 감사합니다callApi 함수에서 catch 를 구현하지 않아서 그렇습니다.아래처럼 변경하시면 될거에요 (마지막에 catch 관련 코드만 추가했습니다)export function callApi({ method = "get", url, params, data }) { return axios({ url, method, baseURL: API_HOST, params, data, withCredentials: true, }) .then((response) => { const { resultCode, resultMessage, totalCount } = response.data; if (resultCode { return { isSuccess: false, }; }); }
- 0
- 1
- 349
질문&답변
객체 할당 관련 질문 있습니다.
타입이 가질 수 있는 값이 더 유연해질 수록 타입이 크다고 이해하면 되는 걸까요?네 속성이 많으면 제약이 커지고 결국 값의 집합은 작아집니다.그렇다면, person에 obj가 할당은 가능하지만person의 타입에 정의되지 않은 properties는 사용할 수 없다는 것으로 이해하는게 맞는건지요?네 Person 의 name 조건만 만족하면 할당 가능하므로 obj 는 할당 가능합니다.person 은 Person 타입이므로 원래 값이었던 obj 는 더 이상 고려 대상이 아닙니다.Person 타입에 집중하시면 됩니다.만일 그렇다면 저런 할당이 왜 필요한지도 이해가 안되고....... 실제로 저런식의 할당을 하는 경우는 어떤 것이 있을까요?상속 관계를 생각해보시면 도움이 될거에요.자식은 부모에 할당 가능합니다.예를 들어, 아래 코드에서 d1 은 p1 에 할당 가능합니다.p1 에는 location 데이터가 들어있지만 마지막 콘솔 로그 부분에서 타입 에러가 발생합니다.p1 은 Person 타입이기 때문입니다.interface Person { name: string;}interface Doctor extends Person { location: string;}const d1: Doctor = {name: 'a', location: 'seoul'};let p1: Person = d1;console.log(p1.location);
- 0
- 1
- 223
질문&답변
퀴즈 관련 질문이 있습니다.
안녕하세요. 제보 감사합니다.말씀하신대로 반환 타입은 number | "too big" 가 맞습니다.조만간 문제 수정해서 배포하겠습니다.
- 0
- 1
- 229
질문&답변
훅 기초 익히기 - 배치 처리와 순차적 처리의 차이
이정연님 안녕하세요배치는 여러 상태값 업데이트를 모아서 한 번에 업데이트 후에 한 번만 렌더링을 합니다.배치가 안되는 상황(순차)에서는 상태값 업데이트 회수 만큼 렌더링이 발생합니다(그 만큼 비효율적입니다)리액트 18 이전까지는 이러한 부분을 개발자가 신경써야 했는데요리액트 18부터는 리액트가 거의 모든 경우에 자동으로 배치로 처리해줍니다따라서 리액트 18 이상을 사용하신다면 이제 배치에 대해 신경을 안쓰셔도 괜찮습니다
- 0
- 1
- 314
질문&답변
cra, next.js 관련 질문 드립니다!
정연님 안녕하세요강의를 통해 많이 얻어가시길 빌게요^^회사 내부 직원들이 사용하는 웹사이트입니다. 검색 엔진 최적화, 빠른 첫 페이지 렌더링 등이 필요하지 않아서 서버사이드 렌더링을 할 필요가 없습니다. 다만 Next.js 가 익숙한 분들이라면 그냥 Next.js 로 개발해도 상관 없다고 생각합니다.서버사이드 렌더링을 안하면 첫 페이지가 렌더링되지 않은 채로 (하얀색 화면만) 사용자에게 전달됩니다. 이후 클라이언트 측에서 화면을 렌더링합니다. 결과적으로 구글이나 네이버 같은 검색 엔진에서는 낮은 품질의 사이트라고 판단하고 검색 결과에서 상위에 노출시키지 않을 확률이 높습니다. 그리고 인터넷이 느리거나 저사양 폰을 사용하는 분들은 첫 화면이 나타날 때까지 오래 기다리게 됩니다. 앞에서 말한 단점들은 대부분의 B2C 서비스에게 큰 단점으로 다가옵니다. 쿠팡 같은 이커머스 서비스에서 본인들의 상품이 구글 검색에 잘 노출되지 않는다면 매출 하락으로 이어질겁니다.
- 0
- 1
- 495