Vue3+TSX项目中使用Transition动画

695 阅读1分钟
<RouterView name='main'>
                {
                    ({Component:X,route:R}: { Component: VNode, route: RouteLocationNormalizedLoaded })=>
                        <Transition
                          enterFromClass={s.slide_fade_enter_from}
                          enterActiveClass={s.slide_fade_enter_active}
                          leaveToClass={s.slide_fade_leave_to}
                          leaveActiveClass={s.slide_fade_leave_active}
                        >
                          {X}
                        </Transition>
                    
                }
            </RouterView>

在TSX文件中使用Transition,通过上边的代码块可以看出,在RouterView组件中通过{}的形式,利用对象解构解构出,RouterView将要渲染的组件以及路由信息,即Component对应将要渲染的组件(我们可以解构出组件,并在下方应用到),route即是路由信息。 Component对应的类型是VNode(在vue中导入并使用)route对应的类型是RouteLocationNormalizedLoaded (在vue-router中导入并使用),通过函数的形式拿到这两个参数时,return出需要做动画的组件,(一定要用Transition组件包裹住(Transition组件在vue中导入并使用))其中X为组件,其组件名可自定义,在Transition组件中的class类名就是动画类名,详见vue-transition模块