vue router target scroll

SeoYng·2020년 8월 27일
0

가끔 다음페이지의 어떤 요소에 스크롤 타겟팅이 되어야 하는 경우가 있다.
방법중에 ref와 scrollIntoView(); 속성을 사용하는 방법을 소개한다.

라우트로 넘아가기 전 페이지

<router-link v-bind:to="{ path: '/page2', params: { target: true } }"></router-link>

라우트로 넘어간 페이지

<div id="target" ref="target"></div>
<script>
    export default {
        mounted() {
            this.$nextTick(function () {
                this.$route.params?.target && this.$refs.target?.scrollIntoView();
            });
        },
    }
</script>

돔이 생성되는 싱크 때문에 nextTick으로 한번 감싸준뒤 파라미터 값이 있을때 타겟에 scrollIntoview 속성을 적용한다.

*어떤 기능인지 참고
데모이미지 및 다른기능 참고
https://reactgo.com/scroll-to-anchor-tags-vue-router/

profile
Junior Web FE Developer

0개의 댓글