微信小程序、uniapp、vue生命周期钩子函数
生命周期是指从创建到销毁的过程
一、微信小程序
小程序里面有两种生命周期函数,第一个:通过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生命周期钩子函数的更多相关文章
- Vue生命周期 钩子函数和组件传值
Vue生命周期 钩子函数 每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听.编译模板.将实例挂载到 DOM 并在数据变化时更新 DOM 等. 同时在这个过程中也会运行一 ...
- 测试微信小程序页面的生命周期
前言:本人是一个初学者,也是第一次写博客,敲键盘的时候还不知道发布后是什么效果,希望内容给其他初学的同学一点帮助,同时加深自己的理解.这篇随笔讲的是Page页面的生命周期,在开发中是基础中的基础,很容 ...
- 关于 vue 生命周期 钩子函数 事件
vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染->更新->渲染.卸载等一系列过程,我们称这是vue的生命周期. 通俗的将就是vue实例从创建到销毁 ...
- 【Taro全实践】Taro在微信小程序中的生命周期
一.Taro的本身生命周期 生命周期componentWillMount在微信小程序中这一生命周期方法对应页面的onLoad或入口文件app中的onLaunch componentDidMount在微 ...
- 对vue生命周期/钩子函数的理解
对于实现页面逻辑交互等效果,我们必须知晓vue的生命周期,才能愉快的玩耍,知道我们写的东西应该挂载到哪里,vue官方给出的api讲解的那叫一个简单啊,如下: 所有的生命周期钩子自动绑定this上下文到 ...
- vue生命周期 钩子函数
首先,1.x和2.x的生命周期钩子对比: 钩子函数的树状图,红色的是我们可以利用的函数,绿色的是函数解析,蓝色的是函数执行时机 <!DOCTYPE html> <html> & ...
- vue 生命周期钩子函数
实例中的生命周期钩子可以分为以下8种情况: beforeCreate: 实例刚被创建,vue所有属性都还不存在 created: 实例创建完成,但$el还不存在 beforeMount:挂载之前 mo ...
- 微信小程序:应用生命周期
小程序的生命周期分为应用生命周期和页面生命周期. 应用指的是一个文件,是小程序的入口文件app.js,入口文件最外层方法名称是App,页面的js文件最外层是page,组件的js文件的最外层是compo ...
- 微信小程序:页面生命周期
小程序生命周期分为应用生命周期和页面生命周期 1.Onload:页面加载时触发,一般在onLoad中发送异步请求来初始化页面数据. 2.onShow:页面显示时触发 3.onReady:页面初次渲染完 ...
- 微信小程序page的生命周期和音频播放及监听
一.界面的生命周期 /** * 监听页面加载, * 页面加载中 */ onLoad:function(){ var _this = this console.log('index---------on ...
随机推荐
- AtCoder Beginner Contest 329 F
AtCoder Beginner Contest 329F F - Colored Ball (atcoder.jp)(启发式合并) 问题陈述 有 \(N\) 个编号为 \(1, 2, \ldots, ...
- React 18 自定义 Hook 获取 useState 最新值
原理:通过同步更新 useRef 来获取最新值 // util.ts export const useRefState = (init: any = null) => { const [sta ...
- 华为交换机S5700-52C-EI开启telnet服务
华为S5700交换机初始化和配置TELNET远程登录方法: 1,交换机开启Telnet服务 <Quidway>system-view #进入系统视图 [Quidway]telnet ser ...
- wget 提示 "无法验证 xxxx.xxx 的由 “xxx” 颁发的证书: 无法本地校验颁发者的权限。"
有一天在使用 wget 下载文件时,出现了无法验证证书的提示: $ wget https://github.com/zayronxio/Mkos-Big-Sur/releases/download/0 ...
- Java并发之原子变量及CAS算法-上篇
Java并发之原子变量及CAS算法-上篇 概述 本文主要讲在Java并发编程的时候,如果保证变量的原子性,在JDK提供的类中式怎么保证变量原子性的呢?.对应Java中的包是:java.util.c ...
- 【YashanDB知识库】账号被锁,如何分析具体原因
问题现象 客户刚开始使用YashanDB的时候,经常收到客户反馈账号被锁,但是不知道哪里触发了. 问题的风险及影响 客户环境为测试环境,影响测试业务的开展. 问题影响的版本 YashanDB版本:23 ...
- [python][selenium] Web UI自动化页面切换iframe框架
关联文章:Web UI自动化8种页面元素定位方式 1.切换iframe的方法:switch_to.frame 入参有4种: 1.1.id 1.2.name 1.3.index索引 1.4.i ...
- 解决向github上push报 error: failed to push some refs to 'xxxxx' 问题
解决向github上push报 error: failed to push some refs to 'xxxxx' 问题 1.问题 向github上push 代码时,报 error: failed ...
- ASP.NET Core Library – ImageSharp
前言 2021 年就写过一篇了, Asp.net core 学习笔记 Image processing (ImageSharp), 只是那时还是旧的写法, 这篇作为翻新和以后继续增加新功能的介绍. I ...
- Nodejs+npm详细安装
Nodejs详细安装步骤1.去官网下载nodejs,下载地址:https://nodejs.org/en/download/ 根据自己要求下载,我这里下载的是windows installer的. 2 ...