首页 > 其他分享 >Vue基础(四)

Vue基础(四)

时间:2022-12-12 09:11:23浏览次数:36  
标签:opacity Vue ...... 基础 vm vue data

vue生命周期函数介绍

  • 引入场景: 呈现文字透明渐隐的效果
......
<body>
    <div id="container">
        <!--值必须写成对象式,在js中,若键值对名称一样,则可以简写-->
        <h3 :style="{opacity}">欢迎!</h3>
    </div>
    
    <script type="text/javascript">
        
        var vm = new Vue({
            'el':'#container',
            data:{
                opacity:1, // 设置不透明度
            },
        });
    
    </script>
</body>
  • 解决方式一:在vm外部使用计时器
......
<body>
    <div id="container">
        <h3 :style="{opacity}">欢迎!</h3>
    </div>
    
    <script type="text/javascript">
        
        var vm = new Vue({
            'el':'#container',
            data:{
                opacity:1,
            },
        });
        
        setInterval(()=>{ // 使用计时器成功解决这个问题
            vm.opacity -= 0.01
            if(vm.opacity <= 0) vm.opacity = 1 // js简写
        },16)
    
    </script>
</body>
  • 如果一定要把逻辑写vue里面,该怎么办
    以下代码示例是一个死循环,后果就是耗尽CPU
......
 <body>
    <div id="container" v-cloak>
        <h3 :style="{opacity}">欢迎!</h3>
        {{change()}} <!--调用这个方法-->
    </div>
    
    <script type="text/javascript">
        
        var vm = new Vue({
            'el':'#container',
            data:{
                opacity:1,
            },
            methods:{
                change(){
                    setInterval(()=>{ // 把之前定时器的逻辑放里面
                        console.log('123')
                        this.opacity -= 0.01
                        if(this.opacity <= 0) vm.opacity = 1
                    },16)
                }
            }
        });
        

    </script>
</body>
......

- 效果:页面无限生成计时器,直至崩溃...

    - 由于定时器定时修改data的值,而vue一旦检测到data数据的变动,就重新解析模板

    - 而数据是一直发生变化的,所以vue就一直解析模板,这个动作无限循环下去...
  • 使用vue生命周期函数"mount()"来解决这个问题
    当页面加载完毕以后(vue挂载完毕),会自动调用 mount
......
<body>
    <div id="container" v-cloak>
        <h3 :style="{opacity}">欢迎!</h3>
    </div>
    
    <script type="text/javascript">
        
        var vm = new Vue({
            'el':'#container',
            data:{
                opacity:1,
            },
            mounted(){ // 页面加载完毕以后,会被调用一次
                setInterval(()=>{
                    this.opacity -= 0.01
                    if(this.opacity <= 0) vm.opacity = 1
                },16)
            }
        });
    
    
    </script>
</body>
......

- 由于mount只被调用一次,所以不会无限生成计时器
  • 小结
- 生命周期

    - 生命周期回调函数,生命周期函数,生命周期钩子

    - 作用: vue在关键时刻帮我们调用的一些特殊名称的函数

    - 钩子函数的名称不可更改,具体逻辑要自己实现

    - 钩子函数的this,指向vue实例/组件对象

标签:opacity,Vue,......,基础,vm,vue,data
From: https://www.cnblogs.com/qinganning/p/16975192.html

相关文章

  • Shell 基础
    概述#CentOS默认的的解释器是bashecho$SHELL/bin/bash#脚本开头指定解析器为bash#!/bin/bash#常用的执行方式#方式一:bash/sh+脚本的绝对路径/相对路径......
  • vue3+element plus封装一个Drawer抽屉组件
    在开发中,我们经常使用vue2封装一些弹窗、抽屉组件,但是vue3的用法与vue2又不同,记录下本次使用vue3基于elementplus封装的一个抽屉组件开发思路是,关闭和打开抽屉组件的方......
  • Jenkins实践指南-04-Groovy基础知识03
    2.4.5操作符2.4.5.1常规算术操作符  [作者:Surpassme]常见的算术操作符主要如下所示:操作符说明示例+相加1+2=3-相减1-2=-1*相乘2*2=4/......
  • Java面向对象基础
    面向对象基础一、什么是面向对象把大象放进冰箱分为三步1、打开冰箱2、把大象放进冰箱3、关上冰箱假设我想把大象放进冰箱,使用面向过程的思想,我首先需要先思考如何......
  • 计算机科学概论与程序设计基础第十五周学习总结
    学号《计算机基础与程序设计》课程总结第一周学习总结https://www.cnblogs.com/ouyangmurong/p/16655008.html    第二周学习总结   第三周学习总结......
  • 2022-2023-1 20221413《计算机基础与程序设计》课程总结
    2022-2023-120221413《计算机基础与程序设计》课程总结作业信息这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这个作业要求在哪里2022-2023-1计算机......
  • Nuxt.js IIS部署,Nuxt.js 发布部署vue-cli 安装 2020最新 vue 4.0安装
    第一步:服务器安装node.js环境1、安装node.js下载地址​​http://nodejs.cn/download/​​我是全部默认下一步的,安装成功之后运行命令查看是否安装成功如果没有出现版本号,......
  • vue3简易入门剖析
    vue3入门本章内容vue3简介vue3项目构建工具vitevue3组合式APIvue3响应式原理–Proxy+Object.defineProperty()computed计算属性watch侦听器函数的使用新增内置组件一、vue3......
  • 第十三章:vuex状态(数据)管理
    第十三章:vuex状态(数据)管理一、VueximporteventbusVue.proptotype.enventBus=eventBus全局事件总线。组件之间的通信:props属性自定义事件总线传值eventBus插槽传值......
  • vue封装移动端日历选择和前后日期切换功能组件
    整体效果1.main.js文件引入element-ui(需要用install指令安装,这里不贴出来了)2.新建组件文件<template><divid="app"><divclass="choose-day-week-month-year-all">......