zoukankan      html  css  js  c++  java
  • vue 生命周期

    生命周期

    Vue 实例从开始创建、初始化数据、编译模板、挂载Dom和渲染、更新和渲染、卸载等一系列过程,这是 Vue 的生命周期

    11 :钩子函数总数

    8:4个阶段每个2个

    2:和缓存相关的钩子

    1:捕获错误

    创建

    beforeCreate: 一般不用

    creared : 数据初始化 修改数据不会触发更新的生命周期

    挂载

    beforeMount :(第一次初始化最后一次改状态)无法访问到状态对应的节点,修改数据不会触发更新的生命周期

    mounted:有数据,有dom,会触发更新的生命周期;挂载到dom树上(重要),访问dom,事件监听setinterval,window.onscroll,ajax自动执行

    更新

    beforeUpdate:访问节点访问不到,数据发生改变,

    updated:更新之后的dom,数据发生改变

    ;做赋值操作容易引起死循环

    卸载

    beforeDestroy:在组件销毁之前 将无用的全局事件、全局计时器销毁;

    destroyed

    常用的生命周期
    ceated  数据请求
    mounted dom初始化
    beforeDestory  擦屁股的操作 弥补遗憾
    

    isCreated = false 只剩beforeDestroy,destroyed
    isCreated = true 只剩前四个
    前四个只会执行一次
    update 执行多次
    剩下两个只能销毁一次

    案例:滚轮监听,随机改变颜色
     <div id="app">
        <banner v-if='show'></banner>
        <button @click='toggle'>toggle</button>
        <div class='box'>
    
        </div>
      </div>
    
      <template id='banner'>
         <div class='demo' :style="{background:color}">
       
         </div>
      </template>
      
    
      Vue.component('banner',{
        data(){
          return{
            color:'skyblue'
          }
        },
        template:'#banner',
        methods: {
          changeColor(){
            console.log('变色')
            let r =parseInt(Math.random()*255)
            let g =parseInt(Math.random()*255)
            let b =parseInt(Math.random()*255)
            let a =Math.random()*255
            this.color=`rgba(${r},${g},${b},${a})`
          }
        },
        created() {
          window.addEventListener('scroll',this.changeColor)
        },
        beforeDestroy() {
          window.removeEventListener('scroll',this.changeColor)
        },
      })
        new Vue({
          el:'#app',
          data:{
            show:true
          },
          methods: {
            toggle(){
              this.show=!this.show
            }
          },
        })
    
  • 相关阅读:
    截取字符
    vue中移动端调取本地的复制的文本
    vue中用 async/await 来处理异步
    vue中子组件调用父组件里面的数据和方法 父组件调用子组件的数据和方法
    spy-debugger 安装以及使用
    vuex用法-新手一
    monent API详解
    原生js标识当前导航位置(给当前导航一个className=active)
    webpack 4.0 配置文件 webpack.config.js文件的放置位置
    移动端部分安卓手机(三星,小米)竖拍上传图片预览的时候发生旋转问题
  • 原文地址:https://www.cnblogs.com/zhaoxinran997/p/12337354.html
Copyright © 2011-2022 走看看