小程序数组 显示第一个 点击完成 显示下一个_小程序学习(4)

本文介绍了小程序中如何实现随机数求和功能和计时器的使用。通过WXML和JS文件展示了如何动态显示随机数组的和,并详细解析了计时器的实现原理,包括定时器的设置、计数以及停止。此外,文章还讨论了对象的概念、数组和Number对象的方法以及this和that的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小程序学习--功能扩展学习

在前面学习完了设计结构 ,顺序,条件,循环结构以及基本页面布局,逻辑层和视觉层之间的通信。。

案例一   随机数求和

(1)案例描述和设计思路

8a6a8b70121fcee1b0c51f5713f0a5c1.png

实现效果

c3ccca7c8d7f42f14de418851e528904.png

(2)详细代码实现和解释

1.wxml中文件

首先是外边框,标题然后view的文本提示

通过列表进行循环wx:for="{{rand}}",列表渲染,rand是从js中传过来的数值,item是数组里的元素,显示元素,后显示随机数的和,sum也是从js中传递过来的,数据绑定。

最后有按钮,类型type为primary,绑定事件函数newRand,即一点击按钮后会调用这个函数,产生新的随机数。

2b04b998d256cb412eff56609dc69e2a.png

2,js后缀文件

先定义了两个全局变量rand,随机数存储的数组,sum,数组的和,再定义一个全局函数,自定义的,先初始化rand,赋值为[],再用for循环,产生六个随机数,定义变量r,用Math.random()产生0到1内的随机数,再乘以100得到范围(0,100),toFixed(位数)表示小数点保留到后两位,但数据类型为字符串,需要*1把其变为数据类型。

array类有很多函数,rand.push(r),加到数组中,随机数列求和,最后在控制台显示数组元素及其和。

后面Page中onLoad函数中调用随机数函数,使得一开始运行时就可以显示一系列的元素,把函数元素和和直接发送到视图层,把逻辑层变量渲染到视图层

再看newRand,点击按钮后调用的函数,再次调用,通过setData函数把rand和sum直接渲染到视图层。

0c99693144e3db09321ab6df76c2bc99.png e8734ee3bc847ce18fdef5407d4b4397.png

(3)知识点总结

234fd61fe91d90a7430cb17c56445c9d.png

1.对象的概念:属性和方法

dbd23292fe6ad56cf99f897560b94fde.png

2.常见对象的方法,Array和Number

21cfc6208dae29f2e37db90c0019e3b0.png c2d063d07e9bf2937c8e6412e9dfe3d3.png a24fe8ba15d1c0292678c60b9dd8d2d3.png ec09e7881e07e46dd45aa0283fa79818.png

总结就是对象的概念和其方法的使用,还涉及到前面讲述的数学函数的使用。对象有数组和数字对象,有一系列的方法。

198e65dc7675eba050688f62182a332f.png

二、计时器的使用

(1)功能介绍和思路设计

0e812a560fbe432be72735c89bfa7bf3.png

实现效果

dc89321e2fbba19676d7c672a29209a4.png

(2)代码介绍

  1. wxml  页面设计

外边框box样式,hidden属性,控制界面是否显示,为Ture显示,False不显示,标题title样式,下面是计时器的界面,样式为time,显示的数值通过num控制,进行了数据绑定,数值来自js文件,下面是一个view,通过btnLayout样式来控制布局,里面有两个按钮,分别绑定了两个事件函数,点击引起函数的调用,显示字体在中间。

ed89bd970e1f1e83290b2cd814caa13b.png

2.wxss  样式布局

time:设置开端,行高为200,因为没有设置高度,默认为行高,故字垂直居中,背景颜色,字体颜色,字体大小,字体水平居中,边界宽度,线为实线,颜色为银色;边框半径为30,四个圆角,边距上下左右为15 。

btnLayout,flex布局,水平布局

button布局45%

00efa6117bb1179c27080be8e2df8a38.png

3.js

先定义两个全局变量,计时器数字和计时器ID

开始data中设置hidden为真,不显示,绑定变量num获得全局变量值,在onLoad函数,程序一加载就调用,赋值操作是因为回调函数的调用可能会有所影响,setTimeout中有回调函数,每个多长时间后调用这个函数,里面调用了show函数,运行两秒钟以后。主要功能是隔多长时间后去调用里面的函数。其中有显示计时页面。在start中,有回调函数,都会有that和this,而setInterval()中是每隔多少时间去调用timer()函数,回调

其中timer函数,显示num,如果num大于0,减一次,直到为0.最后显示。

而停止计时会调用clearInterval(timerID)清除计时器,不再调用 了。

eef6d660e84f54b8f401bb90081de78a.png 06e1ed7e356fbb7ac43f20bc0e490c54.png 55a4ba34ee9434e2d4bdea76dbfcfafc.png

(3)知识点介绍和总结

四个计时函数的使用

0a4eb32f8f56a13888716cf5459177a0.png 683baa73e1ead0abebf1dd29d39118c7.png 86bf2f6a44daa2b2fa438ca8f1d0ca73.png cb691690abcb8ff70bc502307dab3ecc.png 08bf1aa4700d3e8bdc4fbc22fd2cede5.png

注意点

this和that的使用

setData的使用

cd1036c860583f085ae4a9b3f2c1756f.png

三、三色旗自动变化

(1)案例介绍和设计思路

59199a5d58e2cf372332b6a5f50218b4.png

实现效果

颜色的编码用十六进制编码表示

aea15a5b073eef47f61cc55bd284b2fc.png

(2)代码介绍

  1. wxml

外边框加标题

下采用的布局为flex-wrp

后面三个view,样式为item,背景颜色在style中设置,其中颜色进行了数据绑定,从js中传出

最下面一个按钮,类型为primary,样式btn,绑定了一个changeColor函数,点击调用

1d7a4fe1b07b02482a7ad5cf06932590.png

2.wxss  视图层代码设计

上边距,flex布局,水平方向

item有宽度和高度,btn上下边距为20

66a4f9e5540bd362291b64019d446a35.png

3.js

三个函数

自定义的createColor

定义数组,赋值16进制颜色字符集

利用循环创建三种随机颜色,由#开始,而每个颜色由6个字符构成,来一个内循环,Math.random()产生0到1的数,乘以16,取地板,变为整数,加到字符串c中,最后得到一种颜色,通过push方法加入到颜色数组中。在console面板中显示颜色值,最后把创建的颜色渲染到视图层通过this.setData。

生命周期函数

一加载小程序,就运行了直接调用函数使得一开始就可以看到现象,利用this.函数名调用。通过回调函数,每隔5s中回调创建颜色函数,每隔着5s自动改变颜色

点击按钮的事件函数

直接调用本类定义的函数,createColor函数,使得按下按钮也可以改变颜色。

77f21e558fee199b12030c0a0be6f33a.png 2c13fc74e4785661e01921524081d484.png

(3)知识点总结

c3b7fb2acb18e0fdb0a1a2b701e2277c.png 1a0313029beda0b84176c618c8618ec7.png 022fd3050f4425c7a5637772b5a3cabe.png

四、小程序的架构

(1)设计思路和总体思路

4778c832a364e43d9aee0a16c3cfc4ea.png

实现效果

首页的导航栏

053be5ebbabfb0ad2df93124bb24b26b.png

(2)代码文件

(1)app.json

其中pages是页面默认路径列表,页面路径,文件名即可,无需后缀

window 全局是默认窗口表现有背景格式,导航栏字,字体

而tabBar是底部tab栏的表现,其中color文字颜色,selectedcolor选中文字的颜色,list,tab列表,最少两个,最多5个tab,再看list属性,pagePath 页面路径,必须现在pages中先定义,text,tab上按钮文字,iconPath 图片路径,selectedIconPath,选中时图片路径。

795df7833a645ce2116ccc2a32bfa3ff.png 4dc1105513b06655256dbf2eb57f2ab6.png 5eb7241cded302fe7746258171c576aa.png

滑动查看更多

(2)各文件夹下的json文件

页面配置,覆盖app.json中的配置,可以使用同名配置

在jiaoxue.json中设置navigationBar中后接BackgroundColor和Textstyle,TitleStyle设置背景红色,字体白色,内容为教学

404ce1cc925deb8453ffecc9fd5b7228.png5656c0791395e3ae904fefccfb9c7aaf.png
9a0abfc3468a2a58279f99fda14e2228.pngf8582b5fc5fd5c248cbc67e372afd46d.png

(3)知识点总结

3119010536262ff45dcea5d767c7a5b9.png 8409527d21701d7c046d3af0349d4cc4.png cb0f4599a8bb0ac37a0ec707f2a50f75.png f069a7111e42a678fbf6db798fc1870d.png 311d964ae7d5db25ff52a5e236eea9cb.png

滑动查看更多

8adbd55cdb25e13bf1024eb8a453c775.png 6b15427992354dc9b8e7b975f3f0fa50.png

滑动查看更多

918336d0e4cc2f23399181184ce9cecc.png 485cb3b98c29025a56046b5f3709758a.png

五 小程序的执行顺序

(1)总体思路

在上一个小程序的基础上实现的

c117d6937a8b8712a67e02f150e487b9.png

实现---主要是演示实现过程,整体执行顺序

编译后初始页面,app.js中运行,再是index.js,如果点击jiaoxue标签,则会隐藏index页面,依次调用使得页面加载显示渲染,最后切后台,jiaoxue页面会隐藏,再是小程序隐藏,切换前台,则小程序显示到页面显示。

c542550405c72983b3957a64cf4c0dbb.png

(2)代码

  1. json文件的代码和3上一个项目中一样

  2. js文件的配置

先是app.js

App函数,决定了小程序整体的执行顺序,

onLauch函数是小程序初始化,再是显示和隐藏

每个页面的生命周期函数决定页面的执行顺序

adeb1709d2ead3441c6d40a540b587ca.png

再是index.js

都是生命周期函数,第一个是加载,再是显示,再是页面初次渲染完成,页面隐藏,页面卸载

7f7fc8225ff927edb21ae3168e470ff2.png

最后可以在jiaoxue.js中,同时也可以再keyan,guanyu,zixun里的js文件中写如下代码。

6b5973717a66bca33ad909596f85b512.png

(3)总结

从app中开始onload,到index中出现

隐藏的时候从index开始,搭配app中的unload

App(Object object)用于注册小程序在app.js中,必须且只能调用一次,类似c中的main

参数属性,生命周期函数和其他函数(通过this访问)

Page(object)用于注册小程序的页面,参数用于指定初始数据,生命周期回调函数,事件处理函数等。

d5d13dea65be21008f3813fed2f570c8.png
07ad8136002c990d2d9ee47f496093e6.png7f7cf928b8bb026c81251001e246c061.png
21c3086101a1a8bd1973950afed29f2a.png72bfdb6faa225d61e994a13aca2eaad7.png
e2015d97a680ffaecf29f407ae2c0fb0.png afba7dea1d0fbee1b3281c21392d3060.png

基本顺序  小程序初始化,小程序启动,再是页面加载,页面显示,页面渲染,最后是小程序隐藏。

f4c44dcd5f449f57e9fa89f5625f3648.png

点击蓝字 关注我们

期待你的

分享

点赞

在看

新手学习, 如有错误,请指出,共同学习!

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值