微信小程序案例 3.3 生命周期函数

微信小程序——生命周期,生命周期的分类,页面生命周期,生命周期函数的分类,应用的生命周期函数,页面的生命周期函数,wxs脚本概述 生命周期函数:是由小程序框架提供的内置函数,会伴随着生命周期,自动按次序执行。生命周期函数的作用:允许程序员在特定的时间点执行某些特定的操作。例如,页面刚加载的时候,可以在 onLoad 生命周期函数中初始化页面的数据。注意:生命周期强调的是时间段,生命周期函数强调的是时间点。什么是wxswxs ( WeiXin Script )是小程序独有的一套脚本语言,结合 WXML ,可以构建出页面的结构。 阅读详情

一、作业需求

  1. 在案例 3.2 已完成项目基础上进行修改,不需要新建项目,保留原有的 5 个 tab 标签页面:首页、贾潮江、朱培娟、莫日发、朱言春,页面 UI、文字内容全部沿用。
  2. 在app.js编写小程序应用生命周期:onLaunch、onShow、onHide。
  3. 在 5 个页面的.js文件编写页面生命周期:onLoad、onReady、onShow、onHide、onUnload,使用console.log()输出日志信息。
  4. 通过 Console 控制台观察日志输出,理解 tabBar 页面切换的生命周期执行规律。

二、开发实现过程

1. 项目准备

复制案例 3.2 整个项目文件夹,作为案例 3.3 的工程。

  • app.json、全部 wxml 页面、app.wxss全局样式完全不修改,保留底部 tabBar 配置、卡片布局、感动人物完整文本。
  • 只修改app.js以及 5 个页面的 js 脚本文件。

2. 编写应用生命周期 app.js

App({
  onLaunch() {
    console.log('app.js 中的 onLaunch 函数被调用了 -- 监听小程序初始化');
  },
  onShow() {
    console.log('app.js 中的 onShow 函数被调用了 -- 监听小程序启动或切前台');
  },
  onHide() {
    console.log('app.js 中的 onHide 函数被调用了 -- 监听小程序切后台');
  }
})

onLaunch:小程序打开只执行一次;onShow、onHide在前台后台来回切换反复触发。

3. 编写页面生命周期

以 index.js 为例,其余 4 个页面 js 参照同样格式,修改打印日志里的页面名称。

Page({
  onLoad() {
    console.log('index页面的 onLoad 函数被调用了 -- 监听页面加载');
  },
  onReady() {
    console.log('index页面的 onReady 函数被调用了 -- 监听页面初次渲染完成');
  },
  onShow() {
    console.log('index页面的 onShow 函数被调用了 -- 监听页面显示');
  },
  onHide() {
    console.log('index页面的 onHide 函数被调用了 -- 监听页面隐藏');
  },
  onUnload() {
    console.log('index页面的 onUnload 函数被调用了 -- 监听页面卸载');
  }
})

4. 测试操作步骤

  1. 保存全部代码,清除缓存,重新编译小程序,打开调试器切换到Console控制台面板。
  2. 小程序初次启动:观察打印顺序,先执行应用onLaunch,再执行首页页面onLoad → onShow → onReady。
  3. 切换底部 tab 标签:切换到别的标签页,旧页面打印onHide,新页面打印onShow。
  4. 模拟器模拟切后台:点击模拟器 Home 按键,小程序退后台,触发 app 的onHide;再切回小程序,触发 app 的onShow。

三、测试现象与结果

  1. 切换 tab 标签页时,只会触发onShow和onHide,不会执行onUnload。

知识点:tabBar 页面常驻内存,页面只是隐藏,并不会销毁卸载;只有wx.navigateTo跳转打开的普通页面关闭时才会执行onUnload。

  1. 黄色 Skyline 渲染模式警告,只是开发者工具版本提示,不属于程序错误,不影响程序运行和作业结果。
  2. 小程序初始化时onLaunch仅执行一次;前台、后台切换会反复执行onShow、onHide。

控制台实际输出示例:

jiaxiangjiang页面的 onShow 函数被调用了 -- 监听页面显示
jiaxiangjiang页面的 onHide 函数被调用了 -- 监听页面隐藏

四、遇到的问题

表格

问题原因解决办法
控制台看不到打印日志勾选控制台过滤,缓存没有清理清除全部缓存重新编译,检查 Console 过滤条件选择Default levels
切换 tab 没有出现 onUnloadtabBar 页面机制,页面不会销毁属于正常现象,记住 tab 页面生命周期特点即可
出现 Skyline 黄色警告工具渲染版本提示无需修改代码,不影响作业

五、心得体会

本次作业复用上一次 tab 标签项目,不用重新写页面布局,只添加生命周期回调函数。 我理解了小程序分为应用生命周期和页面生命周期两套回调函数。 特别注意 tabBar 页面的特性:标签切换页面不会被销毁,只会隐藏和显示,不会调用onUnload。通过控制台打印日志,可以直观看到代码执行先后顺序,帮助我们调试小程序程序逻辑。

拓展:普通跳转页面和 tabBar 页面生命周期行为不一样,写业务代码的时候,需要区分两者差异。

微信小程序生命周期函数介绍 作用域生命周期函数适用场景小程序(App 级)onLaunch()小程序初始化(只执行一次)onShow()进入前台(恢复操作)onHide()进入后台(存储数据)onError()捕获 JS 错误处理 404 页面页面(Page 级)onLoad()页面加载(接收参数)onShow()页面显示(刷新数据)onReady()页面渲染完成(适合 DOM 操作)onHide()页面隐藏(存储状态)onUnload()页面关闭(释放资源) 阅读详情

相关推荐

从摄像头选型到PCB布线:搞懂MIPI CSI带宽计算,避免你的嵌入式项目翻车

本文详细解析了MIPI CSI带宽计算在嵌入式项目中的关键作用,从摄像头选型到PCB布线提供全流程指导。通过实际案例和计算公式,帮助工程师准确计算带宽需求,避免图像丢帧和系统崩溃问题,同时优化PCB设计确保信号完整性。

weixin_30533109的博客 376

微信小程序生命周期函数详解——《案例3.3 生命周期函数》实践

案例在“创建标签”小程序的基础上,通过在 app.js 文件以及相关页面的 js 文件中添加生命周期回调函数,并在每个函数中调用 console.log() 向控制台输出日志,以此来观察、测试应用生命周期函数与页面生命周期函数的执行顺序。页面 js 文件中的 Page(Object object) 用于注册小程序中的一个页面,接受一个 Object 类型参数,用于指定页面的初始数据、生命周期回调、事件处理函数等。应用从后台回到前台时顺序相反,应用先执行 onShow,当前页面再执行 onShow。

xueruanjiande11的博客 112

MacOS蓝牙连接疑难杂症:从基础排查到高级修复全攻略

本文提供了一份全面的MacOS蓝牙故障排查与修复指南。从基础的菜单栏检查、终端命令诊断,到软/硬重启蓝牙服务、删除配置文件,再到使用blueutil工具、重置NVRAM等高级方法,系统性地解决了蓝牙无法连接、连接不稳定等常见问题。最后还分享了环境干扰排查、预防措施及硬件故障自检方法,帮助用户彻底解决Mac蓝牙连接难题。

weixin_29271263的博客 450

微信小程序案例 3.3 页面生命周期函数学习

本次案例实现微信小程序页面生命周期函数演示,学习小程序页面从创建、加载、显示、隐藏到卸载的完整生命周期,理解onLoadonShowonReadyonHideonUnload的执行时机。通过案例 3.3 掌握小程序页面生命周期,分清各个回调函数的调用时机。开发时根据业务逻辑,把数据请求写在 onLoad,页面每次显示都要刷新的逻辑写在 onShow。理解生命周期是小程序页面开发的基础。

Lam_8的博客 82

手把手教你用Zemax优化MTF:从‘离焦平衡球差’到高频像差控制的实战技巧

本文详细介绍了如何使用Zemax优化MTF性能,从基础设置到高级技巧的全流程。通过具体案例,讲解了如何利用离焦平衡球差提升中频MTF,以及识别和控制高频像差的方法,帮助光学设计工程师和学生有效提升成像质量。

weixin_30752699的博客 752

Matlab图像处理频域滤波实现——高斯低通、高通、带通带阻滤波器

如果你想要进一步了解更多的相关知识,

小嘤熊的博客 1万+

微信小程序生命周期函数学习笔记:案例3.3

本案例在「创建标签」案例基础上,通过在 app.js 文件和其他相关页面 js 文件中添加生命周期函数,来测试程序和页面生命周期函数的执行顺序。生命周期函数是小程序在特定时机自动调用的回调函数,用于在应用或页面不同阶段执行相应逻辑。首次启动页面切换:当前页面 onHide → 新页面 onLoad → 新页面 onShow → 新页面 onReady。切后台回前台。

QiXna1103的博客 225

高斯泼溅(Gaussian Splatting):3D建模的颠覆性革命

高斯泼溅(Gaussian Splatting):3D建模的颠覆性革命

yingtu666的博客 5156

微信小程序|案例 3.3 生命周期函数完整学习

生命周期就是程序/页面从创建、显示、隐藏,到销毁整个完整过程,在不同阶段框架会自动调用对应的回调函数,我们就可以在回调里面写业务代码。应用生命周期:控制整个小程序,写在app.js的App({})里面。页面生命周期:控制单个页面,写在每个页面的.js文件Page({})里面。函数触发时机执行次数onLaunch小程序初始化全局仅1次onShow小程序显示(后台切回前台)可多次onHide小程序进入后台可多次。

zjljjjj的博客 138

铁路场景雷达点云目标识别与追踪系统

本文介绍了一种基于毫米波雷达的铁路货运车站安全监控系统。该系统采用分布式架构,通过多个毫米波雷达节点采集点云数据,经过坐标转换、多雷达融合等处理后,利用机器学习算法实现列车、行人等目标的实时识别与追踪。系统包含数据采集层、处理层、目标识别层、追踪层、预警决策层和可视化层,能够克服传统视频监控受环境影响大的缺点,实现全天候可靠监测。文中详细展示了雷达数据解析和点云预处理的代码实现,包括坐标转换、数据格式解析和体素网格滤波等关键技术。该系统可有效预警铁路场景下的碰撞风险,提升货运车站的安全管理水平。

huanghm88的专栏 125

搭建AutoSAR开发环境

任何开发都需要一套开发环境,包括软硬件环境,笔者后续将介绍的是 NXP 的 S32K144 配套的开发板。接下来详细介绍怎么获取这些软硬件工具。仅供个人学习使用!

cfl927096306的博客 6112

微信小程序案例 3.3 页面生命周期函数

小程序页面生命周期有固定执行顺序,开发时要根据业务逻辑选择合适的生命周期函数。初始化数据一般写在 onLoad 中。Word 文档内只需要两行: 博客名称:微信小程序案例 3.3 页面生命周期函数 博客地址:【粘贴你发布后的博客链接】

2401_88277689的博客 139

【100%通过率】华为od统一考试B卷【查找接口成功率最优时间段】Python 实现

服务之间交换的接口成功率作为服务调用关键质量特性,某个时间段内的接口失败率使用一个数组表示,数组中每个元素都是单位时间内失败率数值,数组中的数值为0~100的整数, 给定一个数值(minAverageLost)表示某个时间段内平均失败率容忍值,即平均失败率小于等于minAverageLost,找出数组中最长时间段,如果未找到则直接返回NULL。

MISAYAONE的博客 5870

《微信小程序生命周期函数详解:从案例 3.3 看懂 App 与 Page 的执行顺序》

生命周期函数是小程序在特定时机自动触发的回调函数,开发者可以在这些函数中完成初始化、数据加载、页面显示与隐藏等操作。应用生命周期(整个小程序实例)和页面生命周期(单个页面)。本案例在案例 3.2(创建标签 /tabBar)的基础上,通过在控制台输出日志,观察这些函数在不同操作下的调用顺序。

Ct010的博客 95

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

微信小程序案例3.3 生命周期函数实战> 标签:#微信小程序 #页面生命周期 #前端学习 #小程序案例

本次学习微信小程序生命周期,分为应用生命周期和页面生命周期。在原有5个tab人物展示项目基础上修改所有js代码,利用console.log输出日志,在调试控制台观察函数触发时机,记录实验现象与知识点。函数触发时机执行次数onLaunch小程序初始化全局仅1次onShow小程序展示(前台)可多次onHide小程序隐藏(后台)可多次。

tian0871的博客 163

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

微信小程序学习笔记:搞懂生命周期函数(《案例3.3》踩坑与实战)

这次实验虽然没写什么复杂的页面,但是通过观察应用的生命周期onLaunch(全局只一次)、onShow(启动或切前台)、onHide(切后台)。页面的生命周期onLoad(加载)、onShow(显示)、onReady(初次渲染完成)、onHide(隐藏)、onUnload(卸载)。重要区别:Tab 切换使用的是 onHide(隐藏),而不是onUnload(卸载)。这个小实验真的很有用,以后在开发小程序的时候,就知道在哪个阶段去请求数据、在哪个阶段去清理资源了。

wyy1085的博客 30

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

微信小程序组件所在页面的生命周期

微信小程序

实践求真知 2499

微信小程序的生命周期函数

如下: 分别为:是什么、有哪些、执行顺序。 一、是什么 跟vue、react框架一样,微信小程序框架也存在生命周期,实质也是一堆会在特定时期执行的函数 小程序中,生命周期主要分成了三部分: ·应用的生命周期 ·页面的生命周期 ·组件的生命周期 1.(应用的生命周期) 小程序的生命周期函数是在app.js里面调用的,通过App(Object)函数用来注册一个小程序,指定其小程序的生命周期回调。 2.(页面的生命周期) 页面生命周...

ZYF_yyds_的博客 8816

微信小程序的生命周期函数一共有哪些?使用场景是什么?底层原理是什么?

微信小程序的生命周期函数为开发者提供了强大的工具来管理和优化应用的行为。

长风破浪会有时的博客 1370

微信小程序生命周期函数

微信小程序中所有生命周期的总结,关于生命周期的知识都可以前来查看

x15514104477的博客 1365

【微信小程序】组件的生命周期及自定义组件

生命周期函数参数描述说明created无在组件实例刚刚被创建时执行attached无在组件实例进入页面节点树时执行ready无在组件在视图层布局完成后执行moved无在组件实例被移动到节点树另一个位置时执行detached无在组件实例被从页面节点树移除时执行error每当组件方法抛出错误时执行类似vue或者react中的自定义组件。微信小程序也 允许我们使用自定义组件的方式来构建页面。

苏凉.py的博客 6395

微信小程序:下拉刷新事件

环节配置位置关键项开启app.json的window(全局)或页面.json(局部)样式同上监听页面.js停止页面.js易错点提醒触发后若不手动调用,下拉 loading 会一直转不停。

dreams_dream的博客 250
上一篇: 微信小程序作业 —— 创建标签页:中国网事・感动 2023
下一篇: 微信小程序案例 3.9:模板实验博客
ZeroT_Too
博客等级 码龄73天 1粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值