zoukankan      html  css  js  c++  java
  • 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>
    
  • 相关阅读:
    Symbol
    前端微信支付步骤
    获取url参数值(可解码中文值)
    HTML5--canvas与svg的使用
    js-图片img转base64格式
    echarts 地图
    echarts 水球图
    react长列表性能优化
    CSS Modules
    react路由
  • 原文地址:https://www.cnblogs.com/anyux/p/12202983.html
Copyright © 2011-2022 走看看