2021.11.15(过渡与动画、pubsub、nextTick)

147 阅读1分钟

消息订阅与发布(pubsub)

  1. 一种组件间通信的方式,适用于任意组件间的通信
  2. 使用步骤:
    1. 安装pubsub:npm i pubsub-js
    2. 引入:import pubsub from 'pubsub-js'
    3. 接收数据:A组件想接收数据,则在A组件中订阅消息,订阅的回调留在A组件自身
      methods() {
          demo(data){......}
      }
      ......
      mounted() {
          this.pid = pubsub.subscribe('xxx',this.demo)//订阅消息
      }
      
    4. 提供数据:pubsub.publish('xxx',数据)
    5. 最好在buforeDestroy钩子中,用pubsub.unsubscribe(pid)取消订阅

nextTick

  1. 语法:this.$nextTick(回调函数)
  2. 作用:在下一次DOM更新结束后执行其指定的回调。
  3. 什么时候用:当改变数据后,要基于更新后的新DOM进行某些操作时,要在nextTick所指定的回调函数中执行。

Vue封装的过渡与动画

  1. 作用:在插入、更新或移除DOM元素时,在合适的时候给元素添加样式类名。
  2. 图示: 过度与动画图示
  3. 写法:
    1. 准备好样式:
      • 元素进入的样式:
        1. v-enter:进入的起点
        2. v-enter-active:进入的过程
        3. v-enter-to:进入的终点
      • 元素离开的样式:
        1. v-leave:离开的起点
        2. v-leave-active:离开的过程
        3. v-leave-to:离开的终点
    2. 使用<transition>包裹要过度的元素,并配置name属性,vue中transition实现动画效果,在标签中添加appear="true"(可简写成appear),可以实现页面加载完毕执行动画:
      <transition name="hello">
          <h1 v-show="isShow">你好啊!</h1>
      </transition>
      
    3. 备注:若有多个元素需要过渡,则需要使用:<transition-group>,且每个元素都要指定key值。