守卫、组件过渡动画、混入mixin、事件修饰符


mapState 和 mapGetters 映射到组件计算属性中
mapMutations 和 mapActions 映射到组件的methods中
方便操作

导航守卫
导航->路由正则发送改变   /home -> /todo
路由拦截
全局前置守卫
  // 可以拦截到所有路由的变化,一般用在main.js中进行拦截
  router.beforeEach((to,from,next)=>{
    // to 将要进入的目标路由信息对象
    // from 从哪里来的路由信息对象
    // next() 下一步要干什么,要跳转到哪里执行的函数,参数router.push一样
  })

路由独享守卫
  {
    path: '/home',
    component: Home,
    beforeEnter (to,from,next) {
      // 进入此路由之前执行
    }
  }

组件内守卫
  beforeRouteEnter (to,from,next) {
    // 组件创建之前就执行了,没有this
  }
  beforeRouteLeave (to,from,next) {

  }

全局后置钩子
  router.afterEach((to,from)=>{

  })

过渡

  • 用来给任意元素或组件添加过渡动画,如,转场动画
  • 元素或组件包裹在标签中
  • 可以执行过渡动画,也可以执行animation动画

过渡类名

  • v-enter 过渡的开始状态(起始帧) 0%

  • v-enter-to 过渡的结束状态(终止帧) 100%

  • v-enter-active 过渡的起始到结束状态(整个过程)

  • v-leave 过渡离开的初始状态 100%

  • v-leave-to 过渡离开的结束状态 0%

  • v-leave-active 过渡离开时从初始到结束的状态(整个过程)

name属性

  • 设置过渡类名的前缀,区分不同过渡元素或组件
  • 如果标签没有name属性,过渡的六个类名默认类名前缀为 v-
  • 如果标签有name属性,过渡的六个类名类名前缀为 hehe-enter hehe-leave …

过渡顺序

  • 默认进入和离开同时执行
  • 设置过渡执行顺序
    mode=“out-in” 先离开再进入
    mode=“in-out” 先进入再离开

自定动画类名

enter-class -> v-enter
enter-active-class -> v-enter-active
enter-to-class -> v-enter-to
leave-class -> v-leave
leave-active-class -> v-leave-active
leave-to-class -> v-leave-to

keep-alive

  • 可以识别包裹在标签中的组件,在组件将要销毁时,不进行销毁,进行缓存

  • 当路由切换到被缓存的组件时,不会重新创建,从缓存取出展示

  • 主要用于保存组件的状态和避免重复渲染组件

  • 4 8 2 1
    4 四个阶段
    8 每个阶段两个钩子函数 4*2 = 8
    2 两个缓存钩子
    1 一个错误钩子函数

  1. 被 keep-alive 缓存的组件激活时调用activated钩子函数
  2. 被 keep-alive 缓存的组件停用时调用deactivated钩子函数

errorCaptured

  • 当捕获一个来自子孙组件的错误时被调用

mixin混入

  • 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能
  • 组件部分功能复用
  • 对象合并( Object.assign(obj1,obj2) )
  • 全局混入和局部混入
  • 全局混入:会把混入对象合并到所有vue实例,所有的组件也会被混入(慎用!)
    Vue.mixin({// 混入对象

})
混入对象中的配置可以是组件配置项中的所有内容

当混入对象和组件配置对象属性冲突时,以组件的数据为主
当混入对象和组件配置对象的方法重名时,保留两个方法,先执行混入对象的方法,再执行组件的方法

事件修饰符

v-on指令的修饰符
事件流 -> 事件的执行顺序
事件对象 -> 包含与事件相关的所有信息
@click.stop 阻止事件传播
@click.prevnet 阻止默认行为
@click.capture 设置事件流为捕获
@click.self 事件必须发生在自己身上才会执行
@click.once 事件只发生一次

// dom.onclick = fn1 DOM 0级事件模型
// dom.onclick = fn2
// dom.onclick = null

// dom.addEventlistener(‘click’,fn1,boolean) DOM 2级事件模型
// dom.addEventlistener(‘click’,fn2,boolean)
// dom.removeEventlistener(‘click’,fn1,boolean)

按键修饰符

监听键盘事件 keyup keydown keypress
@keyup.enter === @keyup.13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值