温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Vue入门九、Vue生命周期

发布时间:2020-05-12 22:24:33 来源:网络 阅读:310 作者:茕茕木偶 栏目:web开发

先上图:
Vue入门九、Vue生命周期

示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript" src="vue.js"></script>
<div id="app"></div>
<script type="text/javascript">
    var mytest = {
        template: `
                <div>测试 {{msg}}
                    <br>
                    <button @click="msg+='1'" >点一下数据会更新</button>
                </div>
            `,
        data() {
            return {
                msg: '嗯呢'
            }
        },

        // 组件创建前
        beforeCreate() {
            console.log('组件创建前')
            console.log(this.msg)
        },
        // 组件创建后
        created() {
            console.log('组件创建后')
            console.log(this.msg)
        },
        // Dom 挂载前
        beforeMount() {
            console.log('Dom挂载前')
            console.log(document.body.innerText)
        },
        // Dom 挂载后
        mounted() {
            console.log('Dom挂载后')
            console.log(document.body.innerText)
        },
        // 数据变更前
        beforeUpdate() {
            console.log('数据更新前')
            console.log(document.body.innerText)
        },
        // 数据变更后
        updated() {
            console.log('数据更新后')
            console.log(document.body.innerText)
        },
        // 组件销毁前
        beforeDestroy() {
            console.log('组件销毁前')
        },
        // 组件销毁后
        destroyed() {
            console.log('组件销毁后')
        },
        // 组件激活
        activated() {
            console.log('组件激活')
        },
        // 组件停用
        deactivated() {
            console.log('组件停用')
        }
    }
    new Vue({
        el: '#app',
        template: `
                <div>
                    <keep-alive><mytest v-if="mytestShow"></mytest></keep-alive>
                    <button @click="clickDestroy">组件销毁</button>
</div>
            `,
        components: {
            mytest
        },
        data() {
            return {
                mytestShow: true
            }
        },
        methods: {
            clickDestroy() {
                this.mytestShow = !this.mytestShow
            }
        }
    })

</script>
</body>
</html>

在需要频繁的创建和销毁组件,如果用的是v-if,可以使用activated()deactivated()对组件进行激活和停用,前提是被操作组件要用<keep alive></keep alive>包裹
例:<keep-alive><mytest v-if="mytestShow"></mytest></keep-alive>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI