프로젝트에서 앤트디자인을 사용하다보면 Modal 컴포넌트의 애니메이션을 제거하고 싶은 경우가 생깁니다. 저또한 Vue 프로젝트에서 ant-design-vue 라이브러리를 사용하면서 Modal 컴포넌트의 애니메이션을 제거하려고 했으나 문서에서 찾으려고 했을 때 바로 나오지 않아서 꽤 귀찮게 찾은 경험이 있어서 해당 이슈 공유합니다. 리액트(React)에서도 동일하게 처리 가능하니 참고바랍니다.
Ant Design - The world's second most popular React UI framework
ant.design
해결방법
해결방법은 의외로 굉장히 간단합니다. 사용하는 Modal 컴포넌트의 트랜지션과 마스크 트랜지션 속성 이름을 none으로 적용하면 애니메이션 효과가 사라집니다. 어떤 원리인지는 파악을 할 수 있으나 컴포넌트에서 해당 props를 제공하는지를 몰라서 조금 애먹었네요. (제가 찾던 시점에 ant-design-vue 문서에 없었던 것으로 기억... 있으면 유감..)
<Modal
transitionName="none"
maskTransitionName="none"
...
/>
Modal.method 방식으로 Modal 컴포넌트를 사용할 때도 동일하게 속성 값을 전달하면 됩니다.
// vue에서 JSX 방식으로 사용 가능합니다.
// only use local component
this.$modalview({
content: () => <Component />
})
const $modalview = ({ suffix = 'default', ...params } = {}) => {
const classnames = ['modalview', `modalview--${suffix}`]
const mergedParams = {
class: classnames,
width: '100%',
transitionName: 'none',
maskTransitionName: 'none',
// centered: true,
maskClosable: true,
...params
}
Modal.warning(mergedParams)
}
'개발 > Vue' 카테고리의 다른 글
Vue render 함수에서 innerHTML 사용하는 방법 (How to use v-html in JSX) (4) | 2021.07.08 |
---|---|
vue cli 버전 확인하는 방법 (How can I check vue cli version) (0) | 2021.06.12 |
vue-awesome-swiper Loop + Autoplay + Pagination 적용하기 (2) | 2020.12.01 |
Vue.js v-model 한글 사용 문제 초간단 해결 방법 (1) | 2020.11.18 |
Vuex 모듈 state 깔끔하게 초기화하는 방법 (Reset Vuex Module State) (0) | 2020.10.22 |
이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.