问题前端新手小白,入手uni-app框架,看着一头雾水,先从最简单的页面生命周期说起吧!分析uni-app的页面生命周期函数:onInit监听页面初始化,为上一页传递的数据,参数类型为Object(用于页面传参),触发时机早于onLoadonLoad监听页面加载,其parameter为上一页传递的数据,参数类型为Object(用于页面传参)onShow监听页面显示。每次页面出现在屏幕上时触发,包括从下级页面点返回显示当前页面onReady监听页面初始渲染完成。注意如果渲染速度快,在页面进入动画前会触发onHide监听页面。隐藏onUnload监控页面,卸载vue生命周期。beforeCreate在实例初始化之后,数据观察和事件配置之前被调用。el和data没有初始化,所以不能访问methods、data、computed等。创建的实例在创建后调用。这一步实例完成了如下配置:数据观察,属性和方法的操作,watch/event事件回调完成了data数据的初始化,el没有。mount阶段还没有开始,$el属性目前是不可见的。这是一个常见的生命周期。可以在methods中调用方法,在data中修改数据,修改可以通过Vue的响应式绑定体现在页面上,获取computed中的computed属性等。通常我们可以在这里对实例进行预处理,有的童鞋喜欢在这里发送ajax请求。值得注意的是,在这个循环中是没有办法拦截实例化过程的,所以如果有一些必须获取的数据才能允许访问页面,不适合在这个方法中发送请求。建议在组件路由钩子beforeRouteEnter中完成beforeMount挂载,并在第一次调用相关render函数之前调用(虚拟DOM),实例已完成如下配置:编译模板,从数据生成html在data和template中,完成el和data的初始化。请注意,html尚未安装到页面上。mounted即挂载,即将模板中的HTML渲染到HTML页面。这时候一般可以做一些ajax操作,mounted只会执行一次。beforeUpdate在数据更新之前调用,这发生在虚拟DOM重新渲染和修补之前。可以在这个钩子中进一步改变状态,不会触发额外的重新渲染过程。补丁被调用时被调用,组件DOM已经更新,所以你可以执行依赖于DOM的操作,而且在大多数情况下,你应该避免在这期间改变状态,因为这可能会导致无限循环的更新,这个钩子在服务器端渲染时不会被调用。beforeDestroy在实例被销毁之前调用,实例仍然完全可用。此步骤也可用于获取实例。一般在这一步会进行一些重置操作,比如清除组件中的定时器,监控的dom实例销毁后调用destroyed事件。调用后,所有事件监听器将被移除,所有子实例将被销毁。服务器端渲染期间不会调用此钩子。uni-app中vue的生命周期执行顺序:beforeCreateonLoadcreatedonShowbeforeMountonReadymountedbeforeUpdateupdated返回上一页时会执行onUnLoad,销毁不执行onHide,进入下一页时会执行onHideEnd
