第十一课 生命周期函数/生命周期钩子

Home组件加载 Header和Lify组件

 

Header.vue

<template>
        
    <div>
            
        <h2 class="header">这是一个头部组件</h2>
    
    </div>

</template>

<script>
    export default {

        data(){

            return{

                msg:'这是一个头部组件'
            }
        }

    };
</script>

<style lang="scss">
    
.header{

    background:#000;

    color:#fff;
}
    
</style>
 
 
 
 
Lify.vue
<template>
    <!-- 所有的内容要被根节点包含起来 -->
    <div id="life">

          生命周期函数的演示    ---{{msg}}

        <br>
          <button @click="setMsg()">执行方法改变msg</button>
    </div>

</template>


<script>

/*

  生命周期函数/生命周期钩子:

    组件挂载、以及组件更新、组件销毁、的时候触发的一系列的方法  这些方法就叫做生命周期函数
    自动调用相对应的函数执行
*/
    export default{

        data(){

            return{

                msg:'msg'
            }
        },
        methods:{
            setMsg(){
                this.msg="我是改变后的数据"
            }

        },

        beforeCreate(){
            console.log('实例刚刚被创建1');
        },
        created(){
            console.log('实例已经创建完成2');
        },
        beforeMount(){
            console.log('模板编译之前3');
        },
        mounted(){     /*请求数据,操作dom , 放在这个里面  mounted*/
            console.log('模板编译完成4');
        },
        beforeUpdate(){
            console.log('数据更新之前');
        },
        updated(){
            console.log('数据更新完毕');
        },
        beforeDestroy(){   /*页面销毁的时候要保存一些数据,就可以监听这个销毁的生命周期函数*/
            console.log('实例销毁之前');
        },
        destroyed(){
            console.log('实例销毁完成');
        }
    }
</script>
 
 
 
 
Home.vue
<template>
    <!-- 所有的内容要被根节点包含起来 -->
    <div id="home">

            <v-header></v-header>
            <br>
            <hr>

            <!-- true/false是否显示 -->
            <v-life v-if="flag"></v-life>

             <br>
              <br>
               <br>

            <button @click="flag=!flag">挂载以及卸载life组件</button>

    </div>

</template>


<script>
    //引入头部组件

    import Header from './Header.vue';


    import Life from './Lify.vue';



    export default{

        data(){

            return {

                msg:'我是一个首页组件msg',
                flag:true
            }
        },
        methods:{

            run(){

                alert(this.msg);
            }
        },
        components:{

            'v-header':Header,
            'v-life':Life
        }

    }

</script>

<style lang="scss" scoped>

    /*css  局部作用域  scoped*/

    h2{

        color:red
    }


</style>
posted @ 2021-04-07 10:40  flytoyou  阅读(70)  评论(0编辑  收藏  举报