vue高级功能 过渡和路由

1、css过渡

通过改变透明度,v-show属性,show是block,transition要配合v-show来使用,name的名字自己定义

vue高级功能 过渡和路由_第1张图片

Vue 提供了 transition 的封装组件,在下列情形中,可以给任何元素和组件添加进入/离开过渡

  • 条件渲染 (使用 v-if)
  • 条件展示 (使用 v-show)
  • 动态组件
  • 组件根节点

通过css实现过渡效果

vue高级功能 过渡和路由_第2张图片

在进入/离开的过渡中,会有 6 个 class 切换。

  1. v-enter:定义进入过渡的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除。

  2. v-enter-active:定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,在元素被插入之前生效,在过渡/动画完成之后移除。这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。

  3. v-enter-to2.1.8版及以上 定义进入过渡的结束状态。在元素被插入之后下一帧生效 (与此同时 v-enter 被移除),在过渡/动画完成之后移除。

  4. v-leave: 定义离开过渡的开始状态。在离开过渡被触发时立刻生效,下一帧被移除。

  5. v-leave-active:定义离开过渡生效时的状态。在整个离开过渡的阶段中应用,在离开过渡被触发时立刻生效,在过渡/动画完成之后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。

  6. v-leave-to2.1.8版及以上 定义离开过渡的结束状态。在离开过渡被触发之后下一帧生效 (与此同时 v-leave 被删除),在过渡/动画完成之后移除。


在style里面设置样式,.fade-enter和.fade-leave-to代表初始和最终样式

经典例子:

hello

new Vue({
  el: '#demo',
  data: {
    show: true
  }
})

.fade-enter-active, .fade-leave-active {
  transition: opacity .5s;
}
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
  opacity: 0;
}

官方文档:https://cn.vuejs.org/v2/guide/transitions.html


2、js钩子过渡

  v-on:before-enter="beforeEnter"
  v-on:enter="enter"
  v-on:after-enter="afterEnter"
  v-on:enter-cancelled="enterCancelled"
  v-on:before-leave="beforeLeave"
  v-on:leave="leave"
  v-on:after-leave="afterLeave"
  v-on:leave-cancelled="leaveCancelled"
>
 

// ...
methods: {
  // --------
  // 进入中
  // --------
  beforeEnter: function (el) {
    // ...
  },
  // 此回调函数是可选项的设置
  // 与 CSS 结合时使用

//进入前的状态,也就是初始状态
  enter: function (el, done) {
    // ...进入过渡
    done()
  },
  afterEnter: function (el) {
    // ...
  },
  enterCancelled: function (el) {
    // ...
  },
  // --------
  // 离开时
  // --------
  beforeLeave: function (el) {
    // ...
  },
  // 此回调函数是可选项的设置
  // 与 CSS 结合时使用
  leave: function (el, done) {
    // ...离开过渡
    done()
  },
  afterLeave: function (el) {
    // ...
  },
  // leaveCancelled 只用于 v-show 中
  leaveCancelled: function (el) {
    // ...
  }
}

vue高级功能 过渡和路由_第3张图片
这些钩子函数可以结合 CSS transitions/animations 使用,也可以单独使用。
当只用 JavaScript 过渡的时候, 在 enter 和 leave 中,回调函数 done 是必须的 。 否则,它们会被同步调用,过渡会立即完成。


推荐对于仅使用 JavaScript 过渡的元素添加 v-bind:css="false",Vue 会跳过 CSS 的检测。这也可以避免过渡过程中 CSS 的影响。


3、自定义指令 directives属性



全局指令,整个项目都可以使用

vue高级功能 过渡和路由_第4张图片




vue高级功能 过渡和路由_第5张图片 

不同阶段有不同操作

vue高级功能 过渡和路由_第6张图片


4、插件

1)router路由:根据不同的地址转跳到不同的页面

1. 创建组件
首先引入vue.js和vue-router.js:



然后创建两个组件构造器Home和About:


var Home = Vue.extend({
    template: '

Home

{{msg}}

',
    data: function() {
        return {
            msg: 'Hello, vue router!'
        }
    }
})


var About = Vue.extend({
    template: '

About

This is the tutorial about vue-router.

'
})
2. 创建Router
var router = new VueRouter()
调用构造器VueRouter,创建一个路由器实例router。


3. 映射路由
router.map({
    '/home': { component: Home },
    '/about': { component: About }
})
调用router的map方法映射路由,每条路由以key-value的形式存在,key是路径,value是组件。
例如:'/home'是一条路由的key,它表示路径;{component: Home}则表示该条路由映射的组件。


4. 使用v-link指令

    Home
    About

在a元素上使用v-link指令跳转到指定路径。


5. 使用标签

在页面上使用标签,它用于渲染匹配的组件。


6. 启动路由
var App = Vue.extend({})
router.start(App, '#app')
路由器的运行需要一个根组件,router.start(App, '#app') 表示router会创建一个App实例,并且挂载到#app元素。
注意:使用vue-router的应用,不需要显式地创建Vue实例,而是调用start方法将根组件挂载到某个元素。


2)路由参数:

在scriptthis.$routes.parmas获得传过来的参数,参数必须带引号,必须在地址栏上带上参数才可以访问

vue高级功能 过渡和路由_第7张图片

vue高级功能 过渡和路由_第8张图片

直接在模板中获取:



3)嵌套路由,要在父组件加上

vue高级功能 过渡和路由_第9张图片


4)命名的路由视图、路由重定向

1、三种写法

第一种要在里面加单引号,否则会被认为是data里的数据。第二种是具名路由,要给路由命名。route-link可以加上tag属性指定是以什么标签,否则默认a标签

vue高级功能 过渡和路由_第10张图片

2、命名路由

vue高级功能 过渡和路由_第11张图片


3、路由过渡动画制作

vue高级功能 过渡和路由_第12张图片

你可能感兴趣的:(vue)