前端Vue2-Day56

消息订阅与发布pubsub:实现任意组件间通信

使用步骤:

① 安装pubsub-js:npm i pubsub-js

② 引入:import pubsub from 'pubsub-js'

③ 订阅消息:使用pubsub自带的subscribe方法

methods: {
 // subscribe的回调函数参数默认为消息名和数据! demo(msgName,data) { ... } } mounted() {
this.pubId = pubsub.subscribe("消息名", this.demo) },

④ 提供数据: pubsub.publish('消息名',数据)

⑤ 最好在beforeDestroy中进行消息订阅的取消:利用消息订阅时产生的pubId进行取消!pubsub.unsubscribe(this.pubId)

注意:由于消息订阅的回调函数参数为消息名和数据。则一般将消息名写为_代表占位。

 

$nextTick:用于在下次DOM更新循环结束之后执行延迟回调。在修改数据后立即调用该方法,获取更新后的DOM。

使用:this.$nextTick(回调函数)

作用:在下一次DOM更新完成后执行其指定的回调。

使用时机:当改变数据后,要基于更新后的新DOM进行某些操作时,要在$nextTick所指定的回调函数中运行。

 

过渡与动画:插入、更新、移除DOM元素时,在合适的时候给元素添加样式类名。

写法:若使用动画则可直接用v-enter-active和v-leave-active调用动画,若使用过渡则用v-enter、v-enter-to、v-leave、v-leave-to分别定义。

 

① 准备样式:

元素进入样式:

  • 1. v-enter:进入的起点(定义过渡)
  • 2. v-enter-active:进入的过程(一般可以直接在此使用动画)
  • 3. v-enter-to:进入的终点(定义过渡)

元素离开样式:

  • 1. v-leave:离开的起点
  • 2. v-leave-active:离开过程中
  • 3. v-leave-to:离开的终点

进入的起点和离开的终点,进入的终点和离开的起点,为轮回,可以定义相同内容。

② 使用<transition>包裹需要过渡的元素,并配置name属性。

③ 若有多个需要过渡的元素。则使用<transition-group>进行包裹,且内置元素需要设置key值。

 

posted @ 2022-10-22 10:37  HM-7  阅读(37)  评论(0)    收藏  举报