侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

vue父子组件生命周期执行顺序是怎么样的?

2022-06-20 星期一 / 0 评论 / 0 点赞 / 42 阅读 / 6425 字

Vue的生命周期中,我们最常用的生命周期方法,莫过于created、mounted,前者是在web页面初始化时执行,后者是在web页面渲染完毕执行,本文基于 vue-cli 简单演示下,便可知道vue父子组件生命周期执行顺序。父组件App.vue<templat

Vue的生命周期中,我们最常用的生命周期方法,莫过于created、mounted,前者是在web页面初始化时执行,后者是在web页面渲染完毕执行,本文基于 vue-cli 简单演示下,便可知道vue父子组件生命周期执行顺序。

父组件App.vue

<template>  <div id="app">    <img alt="Vue logo" src="./assets/logo.png">    <HelloWorld msg="Welcome to Your Vue.js App"/>  </div></template><script>import HelloWorld from './components/HelloWorld.vue'export default {  name: 'App',  components: {    HelloWorld  },  created() {    console.log('父created')  },  mounted() {    console.log('父mounted')  }}</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>

子组件HelloWorld.vue

<template>  <div class="hello">    <h1>{{ msg }}</h1>    <p>      For a guide and recipes on how to configure / customize this project,<br>      check out the      <a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.    </p>    <h3>Installed CLI Plugins</h3>    <ul>      <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>      <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>    </ul>    <h3>Essential Links</h3>    <ul>      <li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>      <li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>      <li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>      <li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>      <li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>    </ul>    <h3>Ecosystem</h3>    <ul>      <li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>      <li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>      <li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>      <li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>      <li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>    </ul>  </div></template><script>export default {  name: 'HelloWorld',  props: {    msg: String  },  created() {    console.log('子created')  },  mounted() {    console.log('子mounted')  }}</script><!-- Add "scoped" attribute to limit CSS to this component only --><style scoped>h3 {  margin: 40px 0 0;}ul {  list-style-type: none;  padding: 0;}li {  display: inline-block;  margin: 0 10px;}a {  color: #42b983;}</style>

vue父子组件生命周期执行顺序结果

就像一个钩子一样,亦类似栈的先进后出,看图可以得知vue父子组件生命周期执行顺序为:父created -> 子created -> 子mounted -> 父mounted

vue父子组件生命周期执行顺序

广告 广告

评论区