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

  • 相关阅读:
    记一次阿里云硬盘在线扩容
    大文件传输技巧-----split切割
    数据库迁移-------通过ibdata1文件和数据库文件迁移
    小技巧---------------vim 使用技巧 set paste 解决粘贴乱序问题
    webfrom 做项目的注意事项
    webform 复合控件
    wenfrom的简单控件和repeater控件
    分页功能 与 分类查询功能合并
    内置对象2
    简单的人员管理系统
  • 原文地址:https://www.cnblogs.com/Initial-C-/p/14087479.html
Copyright © 2011-2022 走看看