zoukankan      html  css  js  c++  java
  • vue组件中各方法执行顺序

    今天遇到一个bug,在mounted中调用的方法需要用到一个data中的数据。

    在created中axios访问后台数据并赋值给data中变量,但data并没有拿到

    在不同位置进行控制台打印,发现执行顺序不完全是按照上下顺序执行的。

    原因是axios发送异步请求,每个请求接收到反馈的时间总不相同。

    解决方法是将要控制顺序在axios后的语句写在axios.then中,就能确保数据返回之后执行。

    再记录一下各个方法执行的顺序

    在页面首次加载执行顺序有如下:

    beforeCreate //在实例初始化之后、创建之前执行
    created //实例创建后执行
    beforeMounted //在挂载开始之前调用
    filters //挂载前加载过滤器
    computed //计算属性
    directives-bind //只调用一次,在指令第一次绑定到元素时调用
    directives-inserted //被绑定元素插入父节点时调用
    activated //keek-alive组件被激活时调用,则在keep-alive包裹的嵌套的子组件中触发
    mounted //挂载完成后调用

    {{}} //mustache表达式渲染页面

    修改页面input时,被自动调用的选项顺序如下:
    watch //首先先监听到了改变事件
    filters //过滤器没有添加在该input元素上,但是也被调用了
    beforeUpdate //数据更新时调用,发生在虚拟dom打补丁前
    directived-update //指令所在的组件的vNode更新时调用,但可能发生在其子vNode更新前
    directives-componentUpdated//指令所在的组件的vNode及其子组件的vNode全部更新后调用
    updated //组件dom已经更新

    组件销毁时,执行顺序如下
    beforeDestroy //实例销毁之前调用
    directives-unbind //指令与元素解绑时调用,只调用一次
    deactivated //keep-alive组件停用时调用
    destroyed //实例销毁之后调用

    参考:

    https://blog.csdn.net/qq_21223653/article/details/106525138

  • 相关阅读:
    db_keep_cache_size參数的控制范围測试
    怎样写面向互联网公司的求职简历
    servlet获取参数
    mybatis
    java常用API
    java IO
    ajax创建
    java 泛型中 T、E ... 和 问号(通配符)的区别
    java Arrays对数组操作
    org.json 使用
  • 原文地址:https://www.cnblogs.com/Initial-C-/p/14087479.html
Copyright © 2011-2022 走看看