import { css } from '@emotion/react';
import theme from './theme';
const fullScreen = css`
position: relative;
top: -3rem;
width: 100vw;
height: 30rem;
margin-left: calc(-50vw + 50%);
@media ${theme.device.tablet} {
height: 43vw;
}
@media ${theme.device.mobile} {
height: 43vw;
}
`;
const invisibleScrollBar = css`
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
&::-webkit-scrollbar {
display: none; /* Chrome, Safari, Opera*/
}
`;
// const mixin = { fullScreen, invisibleScrollBar }; - 기존 방법
// export default mixin
export { fullScreen, invisibleScrollBar }; // - 이렇게 수정
문제점
모듈 관리가 mixin이라는 객체를 통해 되고 있다.
mixin 객체를 사용했기 때문에, mixin을 사용하는 모든 파일에서 mixin 객체를 import해서 프로퍼티로 접근하게되는데, 내부 객체가 다수일 경우 매번 전부 가져와지기 때문에 비효율적이다.
해결책
mixin객체로 한번 묶은 것을 벗겨내고 각 객체들을 개별적으로 export 하는 것.
이 상태에서 import를 하면 구조분해할당으로 필요한 mixin을 바로 import 할 수 있어
프로퍼티 접근을 하지 않아도 된다.