반응형

input요소에 포커스가 가지 않고 copy & paste방지한것처럼 select가 되지 않는 버그 때문에 찾아보니

pointer-event:none 을 해주면 그렇게 된다고 한다

그러나 이때문은 아니고 syncfusion state 변경후 re-render될때 뭔가 안맞아서 그런것으로 예상됨

재현조건을 좁혀봤더니 dropdownList에서 state변경을 통해 구현한 부분에서 정확히 에러가 발생하는 것으로 추정되었기 때문

반응형
반응형
반응형
반응형

html파일에서 <!DOCTYPE html>을 써주지 않아 html의 최신 버전을 알려주지 않거나,

user agent stylesheet에서 명시하는 속성을, 내가 직접 override하지 않으면 그 기본 규칙이 적용될 수 있다.

 

이를 미연에 방지하는 법은, 브라우저의 모든 기본 CSS 규칙을 초기화하기 위해

CSS Reset (meyerweb.com/eric/tools/css/reset/)을 해주는 것이 있겠다.

반응형
반응형
반응형
반응형
e-checkboxfilter e-filter-popup e-control e-dialog e-lib e-popup e-popup-open {
  width: 282px;
}

-> .e-checkboxfilter .e-filter-popup .e-control .e-dialog .e-lib .e-popup .e-popup-open

로 수정하니까 정상동작함

반응형
반응형
반응형
반응형
반응형
반응형

https://simsimjae.tistory.com/382

 

왜 리액트는 대세가 되었을까?

주변에서 다들 리액트가 빠르다, 좋다. 하는데 정확히 어떤 부분이 좋은건데? 라고 물어보면 명확한 답변을 하기가 어려웠습니다. 그래서 이번기회에 리액트가 왜 좋은거고 어떤 장점이 있는건

simsimjae.tistory.com

 

브라우저의 렌더링 과정: parse -> layout -> paint -> composite(paint과정에서 나눠진 레이어들을 합침)

jQuery나 js로 직접 DOM에 접근해서 수정하면 매번 reflow (layout -> paint -> composite)이 일어나며 이는 렌더링 과정에서 대부분의 시간을 잡아먹는 작업이므로 비효율적

 

리액트는 업데이트가 필요한 UI컴포넌트를 하나씩 수정하지 않습니다. 리액트 컴포넌트가 리턴한 JSX를 해석해서 Virtual DOM에 그리고, 이것을 모든 컴포넌트에 대해서 반복합니다. 전부 다 그렸으면 실제 DOM과 비교해서 변경된 부분만 변경시켜주는것이죠. 어떻게 보면 조삼모사처럼 보일수도있습니다. 한번에 하나씩 변경시킬것인가? 아니면 모아서 한번에 처리할것인가? 근데 후자의 방법이 더 좋은 방법입니다. 왜냐면, 모아서 한번에 처리하면 리플로우는 딱 한번 일어나기 때문에 브라우저의 리소스를 덜 사용하기 때문입니다.

유저와의 상호작용이 많아서 서버에서 데이터를 가져와서 UI에 그 데이터를 묶어서 보여줘야 하는 경우가 많은 서비스에서는 리액트가 훨씬 개발하기 편하고 빠릅니다. 

DOM관리를 리액트가 알아서 편리하게 해주기 때문이죠. 저희는 그저 데이터와 UI 컴포넌트를 묶어주기만 하면 됩니다. 직접 DOM에 접근할 필요가 없어요.

출처: https://simsimjae.tistory.com/382 [104%:티스토리]

 

반응형
반응형

state들이 한꺼번에 변화하고 같은 성질을 가진다면 아래와 같이 destructuring assignment를 통해 묶어서 사용

 

화면에 나타나는 변화하는 값들을 state로 사용하되 변화가 한꺼번에 일어나는 것이라면 하나의 state로 묶어서 사용

const [inputs, setInputs] = useState({ username: "", email: "" });
const { username, email } = inputs;

위와 같이 사용하면 inputs.username이렇게 매번 inputs.붙이지 않아도 됨

 

inputs[name] = value; (x)
setInputs({ (o)
  ...inputs,
  [name]: value
});

세팅할때는 위와 같이 해야함

반응형
반응형

리액트 컴포넌트는 기본적으로 부모컴포넌트가 리렌더링되면 자식 컴포넌트 또한 리렌더링이 됩니다. 바뀐 내용이 없다 할지라도요.

물론, 실제 DOM 에 변화가 반영되는 것은 바뀐 내용이 있는 컴포넌트에만 해당합니다. 하지만, Virtual DOM 에는 모든걸 다 렌더링하고 있다는 겁니다.

나중에는, 컴포넌트를 최적화 하는 과정에서 기존의 내용을 그대로 사용하면서 Virtual DOM 에 렌더링 하는 리소스를 아낄 수도 있습니다. 이것은 다음번에 알아볼게요. -> useCallback, React.memo 사용

 

아래와 같이 component를 React.memo로 감싸주고 useCallback사용해야함

export default React.memo(CreateUser);

https://react.vlpt.us/basic/19-React.memo.html

 

19. React.memo 를 사용한 컴포넌트 리렌더링 방지 · GitBook

19. React.memo 를 사용한 컴포넌트 리렌더링 방지 이번에는, 컴포넌트의 props 가 바뀌지 않았다면, 리렌더링을 방지하여 컴포넌트의 리렌더링 성능 최적화를 해줄 수 있는 React.memo 라는 함수에 대해

react.vlpt.us

 

반응형

+ Recent posts