基于vux的Vue路由切换动画

const history = window.sessionStorage
history.clear()
let historyCount = history.getItem(‘count‘) * 1 || 0
history.setItem(‘/index‘, 0)

router.beforeEach((to, from, next) => {
  const toIndex = history.getItem(to.path)
  const fromIndex = history.getItem(from.path)
  if (toIndex) {
    if (!fromIndex || parseInt(toIndex, 10) > parseInt(fromIndex, 10) || (toIndex === ‘0‘ && fromIndex === ‘0‘)) {
      store.commit(‘UPDATE_DIRECTION‘, { direction: ‘forward‘ })
    } else {
      store.commit(‘UPDATE_DIRECTION‘, { direction: ‘reverse‘ })
    }
  } else {
    ++historyCount
    history.setItem(‘count‘, historyCount)
    to.path !== ‘/index‘ && history.setItem(to.path, historyCount)
    store.commit(‘UPDATE_DIRECTION‘, { direction: ‘forward‘ })
  }
  next()
})

  

const state = {
  direction: ‘forward‘
}

  

<template>
  <div id="app">
    <transition :name="‘pop-‘ + (direction === ‘forward‘ ? ‘in‘ : ‘out‘)">
      <router-view></router-view>
    </transition>
  </div>
</template>

<script>
  import { mapState } from ‘vuex‘

  export default {
    computed: {
      ...mapState({
        direction: state => state.common.direction
      })
    }
  }
</script>

<style>
  .pop-out-enter-active, .pop-out-leave-active, .pop-in-enter-active, .pop-in-leave-active {
    will-change: transform;
    transition: .38s ease-in-out, visibility .38s;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    position: absolute;
    -webkit-perspective: 1000;
    perspective: 1000;
  }

  .pop-out-enter {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }

  .pop-out-leave-active {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }

  .pop-in-enter {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }

  .pop-in-leave-active {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }
</style>

  

原文地址:https://www.cnblogs.com/QQPrincekin/p/11684803.html

时间: 2024-07-29 21:23:49

基于vux的Vue路由切换动画的相关文章

vue 路由切换白屏解决方案

关于vue 路由切换的白屏,事实上在开发的过程中,我一直没有遇到过. 我有个哥们遇到这个问题,问我怎么解决的, 我晕了,我没遇到这样的问题啊,我怎么解决啊啊啊啊.. 事实上是遇到过一回的. 场景一:IE9 严格来说不是白屏的问题,应该说是兼容性问题,直接就是不支持,报错了,渲染无法执行造成的.解决方式就是 npm i babel-polyfill -D 然后在入口mian.js 引入就完事了,就着么简单 import 'babel-polyfill' 有人说是在iphone 5s 或者6s 上会

vue路由切换终止请求

问题: 在SPA模式开发当中,比如VUE ,当前路由切换的时候如何终止正在发生的异步请求呢, 结果: 假如请求超时并且有设定超时时间.有一堆的异步请求在执行,当用户切换到另一个页面,这些请求还未终止,并且当服务器响应之后,反馈的结果不是当前页面所期待的.最终会误导用户造成一些不必要的结果.也给web 造成性能问题. 解决方案: 把执行的请求存入队列,当路由切换的时候终止队列里的异步请求. 首先搞一棵树来存储请求队列 import Vue from 'vue' import Vuex from '

vuex实现路由切换动画同时嵌套路由同样使用

示例 http://47.94.90.89/dist/#/aaa一.安装vue-cli1 下载安装node.js 2 npm install -g cnpm --registry=https://registry.npm.taobao.org 换源3 cnpm install -g vue-cli 全局安装vue-cli 已安装则不用4 vue init webpack Vue-Project 初始化vue项目 使用webpack模板,项目名称(自带webpack)5 cnpm install

vue路由-基本使用、重定向、动画、传参

1.什么是路由? url中的hash:https://blog.csdn.net/qq_41219391/article/details/84307129 2.vue路由 1.安装路由: 1.直接下载vue-router.js文件 2.用包管理工具npm 下载并管理        2.使用路由---路由时如何工作的 1.路由最基本的使用 2.路由重定向的使用---redirect 3.设置选中的路由样式的方式(2种) 第一种:直接修改router提供的那个设置选中的类的样式----.router

vue路由

ue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用.vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来.传统的页面应用,是用一些超链接来实现页面切换和跳转的.在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换. 本文将以示例的形式来介绍vue-router的各个特性,一共包含6个示例,每个示例都有乞丐版,前5个示例有皇帝版.乞丐版是将所有代码混杂在一起的HTML页面,皇帝版是基于vue-web

Vue路由传递参数详细说明

前言:最近我跟同事在做一个BI系统,采用前后端分离.整个系统包括数据分析系统.运营支持.系统设置等多个子系统.数据分析系统其实就是做各种数据报表.数据统计.实时数据的系统,这里面其实整个页面就是一个模板,最上面是filter.第二级是统计图.最下面是table数据.所以在数据分析子系统中,只要配置一个路由就可以匹配所有页面,在系统中,我把这个为公用路由.至于公用路由权限如何鉴定其实很简单:获取到用户权限列表后,渲染出所有的权限菜单,但注意每次跳转时一定要进行权限校验,具体原因自行思考.说着有点跑

005 vue路由

一:元素的获取 1.ref元素获取 可以通过ref获取DOm,也可以获取组件的引用 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta

vue路由介绍及使用

vue-router:官方提供的vue路由插件 使用流程: 下载:npm I -S vue-router 引用:import VueRouter from 'vue-router' 注册:Vue.use(VueRouter) 路由配置: const routes=[ {path:'/films',component:Films}, //path:路径 component:组件名 {path:'/cinemas',component:Cinemas}, {path:'/center',compon

iOS 自定义页面的切换动画与交互动画

在iOS7之前,开发者为了寻求自定义Navigation Controller的Push/Pop动画,只能受限于子类化一个UINavigationController,或是用自定义的动画去覆盖它.但是随着iOS7的到来,Apple针对开发者推出了新的工具,以更灵活地方式管理UIViewController切换. 自定义导航栏的Push/Pop动画 为了在基于UINavigationController下做自定义的动画切换,先建立一个简单的工程,这个工程的rootViewController是一个