首页 > 其他分享 >17_生命周期

17_生命周期

时间:2022-10-02 22:22:06浏览次数:46  
标签:opacity Vue console log 17 生命周期 mounted

1.引出生命周期

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>引出生命周期</title>
        <!-- 引入Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!-- 
                生命周期:
                        1.又名:生命周期回调函数、生命周期函数、生命周期钩子。
                        2.是什么:Vue在关键时刻帮我们调用的一些特殊名称的函数。
                        3.生命周期函数的名字不可更改,但函数的具体内容是程序员根据需求编写的。
                        4.生命周期函数中的this指向是vm 或 组件实例对象。
        -->
        <!-- 准备好一个容器-->
        <div id="root">
            <h2 v-if="a">你好啊</h2>
            <h2 :style="{opacity}">欢迎学习Vue</h2>
        </div>
    </body>

    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
        
         new Vue({
            el:'#root',
            data:{
                a:false,
                opacity:1
            },
            methods: {
                
            },
            //Vue完成模板的解析并把初始的真实DOM元素放入页面后(挂载完毕)调用mounted
            mounted(){
                console.log('mounted',this)
                setInterval(() => {
                    this.opacity -= 0.01
                    if(this.opacity <= 0) this.opacity = 1
                },16)
            },
        })

        //通过外部的定时器实现(不推荐)
        /* setInterval(() => {
            vm.opacity -= 0.01
            if(vm.opacity <= 0) vm.opacity = 1
        },16) */
    </script>
</html>

 

2.分析生命周期

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>分析生命周期</title>
        <!-- 引入Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!-- 准备好一个容器-->
        <div id="root" :x="n">
            <h2 v-text="n"></h2>
            <h2>当前的n值是:{{n}}</h2>
            <button @click="add">点我n+1</button>
            <button @click="bye">点我销毁vm</button>
        </div>
    </body>

    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

        new Vue({
            el:'#root',
            // template:`
            //     <div>
            //         <h2>当前的n值是:{{n}}</h2>
            //         <button @click="add">点我n+1</button>
            //     </div>
            // `,
            data:{
                n:1
            },
            methods: {
                add(){
                    console.log('add')
                    this.n++
                },
                bye(){
                    console.log('bye')
                    this.$destroy()
                }
            },
            watch:{
                n(){
                    console.log('n变了')
                }
            },
            beforeCreate() {
                console.log('beforeCreate')
            },
            created() {
                console.log('created')
            },
            beforeMount() {
                console.log('beforeMount')
            },
            mounted() {
                console.log('mounted')
            },
            beforeUpdate() {
                console.log('beforeUpdate')
            },
            updated() {
                console.log('updated')
            },
            beforeDestroy() {
                console.log('beforeDestroy')
            },
            destroyed() {
                console.log('destroyed')
            },
        })
    </script>
</html>

 

3.总结生命周期

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>引出生命周期</title>
        <!-- 引入Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!-- 
                常用的生命周期钩子:
                        1.mounted: 发送ajax请求、启动定时器、绑定自定义事件、订阅消息等【初始化操作】。
                        2.beforeDestroy: 清除定时器、解绑自定义事件、取消订阅消息等【收尾工作】。

                关于销毁Vue实例
                        1.销毁后借助Vue开发者工具看不到任何信息。
                        2.销毁后自定义事件会失效,但原生DOM事件依然有效。
                        3.一般不会在beforeDestroy操作数据,因为即便操作数据,也不会再触发更新流程了。
        -->
        <!-- 准备好一个容器-->
        <div id="root">
            <h2 :style="{opacity}">欢迎学习Vue</h2>
            <button @click="opacity = 1">透明度设置为1</button>
            <button @click="stop">点我停止变换</button>
        </div>
    </body>

    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

         new Vue({
            el:'#root',
            data:{
                opacity:1
            },
            methods: {
                stop(){
                    this.$destroy()
                }
            },
            //Vue完成模板的解析并把初始的真实DOM元素放入页面后(挂载完毕)调用mounted
            mounted(){
                console.log('mounted',this)
                this.timer = setInterval(() => {
                    console.log('setInterval')
                    this.opacity -= 0.01
                    if(this.opacity <= 0) this.opacity = 1
                },16)
            },
            beforeDestroy() {
                clearInterval(this.timer)
                console.log('vm即将驾鹤西游了')
            },
        })

    </script>
</html>

 

标签:opacity,Vue,console,log,17,生命周期,mounted
From: https://www.cnblogs.com/y593216/p/16749630.html

相关文章

  • 2017 insomni'hack wheelofrobots Writeup
    2017insomni'hackwheelofrobotsWriteup0x00前言题目地址:wheelofrobots程序保护:0x01程序分析1.1mainmain程序如下图。进入程序后,先显示菜单,然后用户输入,根据选......
  • CF 617E XOR and Favorite Number 题解
    如果我们对给定的序列求出异或意义下的前缀和,哪么题意变为求满足\(sum_{i-1}\operatorname{xor}sum_j=k\)的\((i,j)\)数量。由于\(x\operatorname{xor}y=z\)等......
  • cf1739D
    题意每次可以选择树上的一条边fa,u,将此边断开,连到根1上面询问k次操作后,一棵树的最小深度想法初见,第一反应直接贪心取最深的那一条路上的中间边经过几组思考,发现答案具......
  • CF1738 E. Balance Addicts
    https://codeforc.es/contest/1738/problem/E考虑回文的构造最典的一定是2边向中间不断扩展的形式,这启发我们从这个方面着手思考。考虑\(f(l,r)\)为区间\([l,r]\)......
  • 肖sir__Java IO流___17
    JavaIO流1.1流概念在Java中所有数据都是使用流读写的。数据流的处理只能按照数据序列的顺序来进行,即前一个数据处理完之后才能处理后一个数据。数据流以输入流的形式......
  • CF1738H Palindrome Addicts
    题意初始有一个空字符串\(s\)。给定\(q\)组操作,每次操作是在\(s\)后加一个字符或是在\(s\)前删一个字符。每次操作后要输出\(s\)中本质不同回文子串数。数据......
  • P4084 [USACO17DEC]Barn Painting G
    #include<bits/stdc++.h>usingnamespacestd;constlonglongmod=1e9+7;classDP_on_tree{public: #definelllonglong lln,k; llfree[100001]; llf......
  • 使用 Fuse 和 java 17 编写一个简单的文件系统
    使用Fuse和java17编写一个简单的文件系统Photoby扬·安东宁·科拉尔on不飞溅目标是探索ProjectPanama的外部链接器功能并创建我们的简单文件系统。我们将......
  • 【前端必会】走进webpack生命周期,另类的学习方法
    背景webpack构建过程中的hooks都有什么呢?除了在网上看一些文章,还可以通过更直接的办法,结合官方文档快速让你进入webpack的hook世界写一个入口文件//index.jsconstwebp......
  • 磨练 LeetCode 问题之禅:第 117 天——Powers
    磨练LeetCode问题之禅:第117天——Powers欢迎回到LeetCode日常练习系列.今天我做了3简单的问题。让我们开始!Photoby利兹桑切斯-维加斯on不飞溅二的幂[......