美文网首页alreadyvue
vue2x,vue3x 生命周期对比

vue2x,vue3x 生命周期对比

作者: 暴躁程序员 | 来源:发表于2023-01-03 17:27 被阅读0次

1. 名称变化对比

vue3x   ==================================      vue2x

setup                                           beforeCreate
setup                                           created

onBeforeMount                                   beforeMount
onMounted                                       mounted

onBeforeUpdate                                  beforeUpdate
onUpdated                                       updated

onBeforeUnmount                                 beforeDestroy
onUnmounted                                     destroyed

onActivated                                     activated
onDeactivated                                   onDeactivated

2. 调用方式变化对比

1. vue3x 生命周期调用
  • 使用前需要先引入,然后以函数回调的方式调用
  • 作为组合api,其他生命周期都需要写在setup中
  • vue3x 在setup中this是undefined
<script>
import {
  onBeforeMount,
  onMounted,
  onBeforeUpdate,
  onUpdated,
  onBeforeUnmount,
  onUnmounted,
  onActivated,
  onDeactivated
} from "vue";
export default {
  setup() {
    // 初始化
    console.log("setup :创建实例前执行");

    // 挂载
    onBeforeMount(() => {
      console.log("onBeforeMount :挂载DOM前");
    });
    onMounted(() => {
      console.log("onBeforeMount :挂载DOM后");
    });

    // 变更
    onBeforeUpdate(() => {
      console.log("onBeforeMount :更新组件前");
    });
    onUpdated(() => {
      console.log("onBeforeMount :更新组件后");
    });

    // 卸载
    onBeforeUnmount(() => {
      console.log("onBeforeMount :组件销毁前");
    });
    onUnmounted(() => {
      console.log("onBeforeMount :组件销毁后");
    });

    // 活性
    onActivated(() => {
      console.log("和 keep-alive 组件一起使用,组件激活时触发");
    });
    onDeactivated(() => {
      console.log("和 keep-alive 组件一起使用,组件失活时触发");
    });

  },
};
</script>
2. vue2x 生命周期调用
<script>
export default {
  beforeCreate() {
    console.log('beforeCreate');
  },
  created() {
    console.log('created');
  },
  beforeMount() {
    console.log('beforeMount');
  },
  mounted() {
    console.log('mounted');
  },
  beforeUpdate() {
    console.log('beforeUpdate');
  },
  updated() {
    console.log('updated');
  },
  beforeDestroy() {
    console.log('beforeDestroy');
  },
  destroyed() {
    console.log('destroyed');
  },
  activated() {
    console.log('activated');
  },
  onDeactivated() {
    console.log('onDeactivated');
  },
};
</script>

相关文章

网友评论

    本文标题:vue2x,vue3x 生命周期对比

    本文链接:https://www.haomeiwen.com/subject/dzfkcdtx.html