vue基础之生命周期


categories:

  • vue基础
    tags:
  • vue生命周期

vue生命周期

<!doctype html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<div id="app">
    <App></App>
</div>
<script src="./vue.js"></script>
<script>
    Vue.component('Test',{
        data(){
          return {
              msg:'hello world',
          } ;
        },
        template:`
        <div>
        <div>{{msg}}</div>
        <button @click="clickHandler">改变</button>
        </div>
        `,
        methods:{
            clickHandler(){
                return this.msg += "尴尬";
            }
        },
        beforeCreate:function () {
        //    组件创建之前
            console.log(this)
        //    已创建vue对象,但是数据没有创建
        },
        created:function () {
            // 组件创建之后
            console.log(this.msg)
        //    使用组件,就会调用created()方法
        //    在created方法中可操作后端数据,数据驱动视图
        //    应用:发起ajax请求
        },
        beforeMount:function () {
        //    挂载数据到DOM之前会调用
            console.log(document.getElementById('app'))

        },
        mounted:function () {
            //    挂载数据到DOM之后会调用
            console.log(document.getElementById('app'))
        },
        beforeUpdate:function () {
        //在更新DOM之前调用该钩子,应用可以获取原始DOM
            console.log(document.getElementById('app').innerHTML)
        },
        updated:function () {
            //在更新DOM之后调用该钩子,应用可以获取原始DOM
            console.log(document.getElementById('app').innerHTML)
        },
        //以下两个组件需要禁用keep-alive组件
        beforeDestroy:function () {
        //销毁之前
            console.log("beforeDestroy");
        },
        destroyed:function () {
        // 销毁之后
            console.log("destroyed")
        //    销毁定时器
        },
        //以下两个组件需要与keepalive配合使用
        activated:function () {
        // 组件被激活了
            console.log('组件被激活了')
        },
        deactivated:function () {
        // 组件被停用了
            console.log('组件被停用了')
        }
    })
    var App = {
        data(){
            return {
                isShow:true
            }
        },
        //vue内置组件<keep-alive></keep-alive>能在组件的切换过程中将状态保留在内存中。防止DOM重复渲染
        // 使用之后,并不会触发销毁函数
        template:`
        <div>
            <div class="app">
            <keep-alive>
            <Test v-if="isShow"/>
            </keep-alive>
            <button @click="isShow = !isShow">改变生死</button>
</div>
</div>`
    }
    new Vue({
        el:'#app',
        data(){
            return {}
        },
        components: {
            App
        }
    })
</script>
</body>
</html>

猜你喜欢

转载自www.cnblogs.com/anyux/p/12202983.html