生命周期是指从创建到销毁的过程

一、微信小程序

小程序里面有两种生命周期函数,第一个:通过App()来注册一个小程序 ,第二个:通过Page()来注册一个页面

  • 应用生命周期函数

      app( )

app.js 是小程序执行的入口文件,在 app.js 中必须调用 APP() 函数

APP() 函数用于注册并执行小程序

App({
onLaunch: function(options) {
// 监听小程序初始化。小程序初始化完成时(全局只触发一次)
},
onShow: function(options) {
// 监听小程序显示。小程序启动,或从后台进入前台显示时
},
onHide: function() {
// 监听小程序隐藏。小程序从前台进入后台时。
},
onError: function(msg) {
console.log(msg) // 错误监听函数。小程序发生脚本错误,或者 api 调用失败时触发,会带上错误信息
},
onPageNotFound: function(res) {
// 页面不存在监听函数。小程序要打开的页面不存在时触发,会带上页面信息回调该函数
},
globalData: 'I am global data'
})
  • 页面生命周期函数

      page( ) 

每个小程序页面都拥有自己的 .js 文件,且必须调用 page() 函数

page() 函数用于注册小程序页面

Page({
data: {
// 页面的初始数据
text: "This is page data."
},
onLoad: function(options) {
// 生命周期回调—监听页面加载
},
onReady: function() {
// 生命周期回调—监听页面初次渲染完成
},
onShow: function() {
// 生命周期回调—监听页面显示
},
onHide: function() {
// 生命周期回调—监听页面隐藏
},
onUnload: function() {
// 生命周期回调—监听页面卸载
},
// ---------------以下不是生命周期钩子函数----------------
onPullDownRefresh: function() {
// 监听用户下拉动作
},
onReachBottom: function() {
// 页面上拉触底事件的处理函数
},
onShareAppMessage: function () {
// 用户点击右上角转发
},
onPageScroll: function() {
// 页面滚动触发事件的处理函数
},
onResize: function() {
// 页面尺寸改变时触发
},
onTabItemTap(item) {
// 当前是 tab 页时,点击 tab 时触发
console.log(item.index)
console.log(item.pagePath)
console.log(item.text)
},
// 任意的函数,在页面的函数中用 this 可以访问
viewTap: function() {
this.setData({
text: 'Set some data for updating view.'
}, function() {
// this is setData callback
})
},
// 任意数据,在页面的函数中用 this 可以访问
customData: {
hi: 'MINA'
}
})
  • 生命周期的调用时间

1.用户首次打开小程序,触发 onLaunch 方法(全局只触发一次)。
2.小程序初始化完成后,触发 onShow 方法,监听小程序显示。
3.小程序从前台进入后台,触发 onHide 方法。
4.小程序从后台进入前台显示,触发 onShow 方法。
5.小程序后台运行一定时间,或系统资源占用过高,会被销毁。
6.全局的 getApp() 函数可以用来获取到小程序 App 实例。

7.onHide函数就是当隐藏页面的时候触发。

  • 从中我们可以知道小程序页面的生命周期函数的调用顺序为:onLoad>onShow>onReady。

二、uniapp

App.vue是uniapp的主组件,所有页面都是在App.vue下进行切换的,是页面入口文件。但App.vue本身不是页面,这里不能编写视图元素。

这个文件的作用包括:1,调用应用生命周期函数、2.配置全局样式、3.配置全局的存储globalData

uniapp有三个生命周期:1.应用生命周期 2.页面生命周期 3.组件生命周期

  • 应用生命周期(仅在App.vue中有效,其他页面监听无效)

  • 页面生命周期

  • 组件生命周期(与vue生命周期一致)

三、VUE

  • 生命周期钩子函数

  • 自定义指令directives的钩子函数

    (1)bind() 绑定指令到元素上,只执行一次。在这里可以进行一次性的初始化设置。

  (2)inserted() 绑定了指令的元素插入到页面中展示时调用,很常用。

  (3)update()  所有组件节点更新时调用

  (4)componentUpdated 指令所在的节点及其子节点全部更新完成后调用。

  (5)unbind() 解除指令和元素的绑定,只执行一次。

<template>
<div>
<div id="app"><input v-focus /></div>
<hr>
<p style="width:200px;height:200px" v-pin='colors'>trying</p>
<hr>
<div id="app" v-demo:foo.a.b="message"></div>
</div>
</template>
<script>
import Vue from "vue"; // 1、输入框聚焦
Vue.directive("focus", {
// 当被绑定的元素插入到 DOM 中时……
inserted: function (el) {
// 聚焦元素
el.focus();
},
}); // 2、绑定背景颜色
Vue.directive('pin', function(el, binding) { //背景颜色
el.style.background = binding.value
}) // 3、文字显示
Vue.directive('demo', {
bind: function (el, binding, vnode) {
var s = JSON.stringify
el.innerHTML =
'name: ' + s(binding.name) + '<br>' +
'value: ' + s(binding.value) + '<br>' +
'expression: ' + s(binding.expression) + '<br>' +
'argument: ' + s(binding.arg) + '<br>' +
'modifiers: ' + s(binding.modifiers) + '<br>' +
'vnode keys: ' + Object.keys(vnode).join(', ')
}
}) export default {
name: "directive",
data() {
return {
colors:"",//定义变量接收
message:'left',
}
},
created(){
this.colors="pink"
}
}
</script>
  • 路由导航 / 路由守卫  钩子函数

(1)全局守卫

    ①前置:router.beforeEach((to,from,next)=>{ })

    ②后置:router.afterEach((to,from)=>{ })

  (2)路由独享守卫

    beforeEnter:(to,from,next)=>{ }

  (3)导航守卫

    ①beforeRouteEnter(to,from,next){ }

    ②beforeRouteLeave(to,from,next){ }
         (4)  广义上来说,watch、computed这些也属于钩子函数,watch是在监控的数据变化时就会自动执行对应的方法,而computed是在数据变化时再次计算数据

  • keep-alive

    •   keep-alive有两个钩子函数:

actived: 在激活的时候的使用,第一次激活实在mounted之后执行

dectived:在失活的时候使用。

    •   除此之外,keep-alive还提供了三个属性

1.include :记录的是哪些组件可以被缓存

2.exclude:  记录了哪些组件不能被缓存

3.max: 记录的是可以缓存组件的最大数量

微信小程序、uniapp、vue生命周期钩子函数的更多相关文章

  1. Vue生命周期 钩子函数和组件传值

    Vue生命周期 钩子函数 每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听.编译模板.将实例挂载到 DOM 并在数据变化时更新 DOM 等. 同时在这个过程中也会运行一 ...

  2. 测试微信小程序页面的生命周期

    前言:本人是一个初学者,也是第一次写博客,敲键盘的时候还不知道发布后是什么效果,希望内容给其他初学的同学一点帮助,同时加深自己的理解.这篇随笔讲的是Page页面的生命周期,在开发中是基础中的基础,很容 ...

  3. 关于 vue 生命周期 钩子函数 事件

    vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染->更新->渲染.卸载等一系列过程,我们称这是vue的生命周期. 通俗的将就是vue实例从创建到销毁 ...

  4. 【Taro全实践】Taro在微信小程序中的生命周期

    一.Taro的本身生命周期 生命周期componentWillMount在微信小程序中这一生命周期方法对应页面的onLoad或入口文件app中的onLaunch componentDidMount在微 ...

  5. 对vue生命周期/钩子函数的理解

    对于实现页面逻辑交互等效果,我们必须知晓vue的生命周期,才能愉快的玩耍,知道我们写的东西应该挂载到哪里,vue官方给出的api讲解的那叫一个简单啊,如下: 所有的生命周期钩子自动绑定this上下文到 ...

  6. vue生命周期 钩子函数

    首先,1.x和2.x的生命周期钩子对比: 钩子函数的树状图,红色的是我们可以利用的函数,绿色的是函数解析,蓝色的是函数执行时机 <!DOCTYPE html> <html> & ...

  7. vue 生命周期钩子函数

    实例中的生命周期钩子可以分为以下8种情况: beforeCreate: 实例刚被创建,vue所有属性都还不存在 created: 实例创建完成,但$el还不存在 beforeMount:挂载之前 mo ...

  8. 微信小程序:应用生命周期

    小程序的生命周期分为应用生命周期和页面生命周期. 应用指的是一个文件,是小程序的入口文件app.js,入口文件最外层方法名称是App,页面的js文件最外层是page,组件的js文件的最外层是compo ...

  9. 微信小程序:页面生命周期

    小程序生命周期分为应用生命周期和页面生命周期 1.Onload:页面加载时触发,一般在onLoad中发送异步请求来初始化页面数据. 2.onShow:页面显示时触发 3.onReady:页面初次渲染完 ...

  10. 微信小程序page的生命周期和音频播放及监听

    一.界面的生命周期 /** * 监听页面加载, * 页面加载中 */ onLoad:function(){ var _this = this console.log('index---------on ...

随机推荐

  1. C#开发的全屏图片切换效果应用 - 开源研究系列文章 - 个人小作品

    这天无聊,想到上次开发的图片显示软件< PhotoNet看图软件 >,然后想到开发一个全屏图片切换效果的应用,类似于屏幕保护程序,于是就写了此博文.这个应用比较简单,主要是全屏切换换图片效 ...

  2. BST二叉查找树的接口设计

    /*************************************************************************************************** ...

  3. QT基础-弹出框(信息框,模态框,操作框)

    学习前端知识的时候就了解到让用户使用的界面一定要足够清晰,因为你永远不知道用户会以何种方式打开你开发的软件,所以莫泰提示框就很重要了.下面将会介绍几本的集中模态对话框,用来提升用户体验! 1.模态框 ...

  4. 高级工程师面试大全- spring篇

    1.spring是什么 Spring是一个轻量级的IoC和AOP容器框架.是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求.主要包括以下七 ...

  5. [计算机网络] IPv6

    1 IPv6 概述 引言 近期突发奇想,能不能用 IPv6 的公网地址,给家里的 NAS 做 内网穿透. 技术上是可行的.只是必须确保是 IPv6 的公网地址. 大学学的 IPv6 的知识,早就抛到九 ...

  6. k8s pvc扩容

    #查看是否支持扩容 $ kubectl get sc ** -o yaml ··· allowVolumeExpansion: true #拥有该字段表示允许动态扩容 ··· #找到需要扩容的pvc ...

  7. Python被远程主机强制关闭后怎么自动重新运行进程

    要实现Python程序在被远程主机强制关闭后能够自动重新运行,我们可以采用几种方法,但最直接且常用的方法之一是结合操作系统级的工具或脚本.在Linux系统中,我们可以使用cron作业或者systemd ...

  8. TF-IDF 算法原理以及源码实现

    TF-IDF(Term Frequency-Inverse Document Frequency),是用来衡量一个词在文档中的重要性,下面看一下TDF-IDF的公式: 首先是TF,也就是词频,用来衡量 ...

  9. Win32 拆分窗口

    前两天学习了MFC的拆分窗口,今天来学习Win32 SDK下如何拆分窗口. win32是没有像MFC那样直接有函数方法拆分窗口,只能自己处理了. 1.在WM_CREATE消息中创建两个控件,TreeV ...

  10. Flask 从开发到部署

    整理一下怎么开发flask程序应部署到生产环境中 1. 第一个flask 程序 myapp.py from flask import Flask app = Flask(__name__) @app. ...