xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

vue-parent-child-lifecycle-order All In One

vue-parent-child-lifecycle-order All In One

vue parent child lifecycle order

live demos

https://99kyx.csb.app/

https://codesandbox.io/s/vue-parent-child-lifecycle-order-99kyx

https://vue-parent-child-lifecycle-order.stackblitz.io

https://stackblitz.com/edit/vue-parent-child-lifecycle-order

<template>
  <div class="parent">
    <h2>{{ title }}</h2>
    <button @click="toggleShow">ToggleShow</button>
    <ChildComponent v-if="show"/>
  </div>
</template>

<script>
  import log from "../utils/log";
  import ChildComponent from "./child";
  export default {
    name: "ParentComponent",
    components: {
      ChildComponent,
    },
    props: {
      msg: String,
    },
    data() {
      return {
        title: "parent-lifecycle-order",
        show: true,
      };
    },
    methods: {
      toggleShow() {
        const { show } = this;
        this.show = !show;
      },
    },
    beforeCreate() {
      log(`parent beforeCreate`, 1)
    },
    created() {
      log(`parent created`, 2)
    },
    beforeMount() {
      log(`parent beforeMount`, 3)
    },
    mounted() {
      log(`parent mounted`, 4)
    },
    beforeUpdate() {
      log(`parent beforeUpdate`, 5)
    },
    updated() {
      log(`parent updated`, 6)
    },
    beforeDestroy() {
      log(`\nparent beforeDestroy`, 7)
    },
    destroyed() {
      log(`parent destroyed`, 8)
    },
    // catch error
  };
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
  h2 {
    margin: 30px 0 0;
  }
</style>



<template>
  <div id="app">
    <h1>vue-parent-child-lifecycle-order</h1>
    <button @click="toggleShow">ToggleShow</button>
    <ParentComponent v-if="show"/>
  </div>
</template>

<script>
  import ParentComponent from "./components/parent";
  export default {
    name: "App",
    components: {
      ParentComponent,
    },
    data() {
      return {
        show: true,
      };
    },
    methods: {
      toggleShow() {
        const { show } = this;
        this.show = !show;
      },
    },
  };
</script>

<style>
  #app {
    font-family: "Avenir", Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-align: center;
    color: #2c3e50;
    margin-top: 60px;
  }
</style>


Vue 2.x lifecycle

https://v2.vuejs.org/v2/api/#Options-Lifecycle-Hooks

https://v2.vuejs.org/v2/guide/instance.html#Lifecycle-Diagram

refs



©xgqfrms 2012-2025

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @   xgqfrms  阅读(508)  评论(18编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-05-16 webpack & webpack-cli
2019-05-16 onsen & UI & vue & mobile UI
2018-05-16 MySQL & CMD
2018-05-16 swagger ui
2018-05-16 React refs all in one
2016-05-16 用户信息 设置 模板
2016-05-16 网站访问者 浏览器 操作系统 等 信息检测! Lightweight JavaScript-based User-Agent string parser: 基于JavaScript的轻量级 用户代理字符串解析器:
点击右上角即可分享
微信分享提示