配色: 字号:
第2章 微信小程序开发基础
2020-08-13 | 阅:  转:  |  分享 
  
第2章微信小程序开发基础【案例1】比较数值大小【案例3】计算器【案例2】调查问卷学习目标掌握小程序项目的基本结构及配置文件的编写掌握WXM
L、WXSS和条件渲染、列表渲染的基本语法掌握Page()、App()函数和常用组件的使用掌握掌握小程序与服务器交互的实现掌握12
34掌握目录2.12.32.2【案例1】比较数字大小【案例3】计算器?点击查看本节相关知识点【案例2】调查问卷?点击查看本节相关知
识点?点击查看本节相关知识点知识架构2.1【案例1】比较数字大小1案例分析2创建项目3页面组件4页面样式5配置文件6页面逻辑知识
架构2.1【案例1】比较数值大小1注册程序2实现比较功能知识架构2.2【案例2】调查问卷1案例分析2编写表单页面3服务器数据交互
4表单数据绑定知识架构2.3【案例3】计算器1案例分析2编写计算器页面3实现计算逻辑功能2.1【案例1】比较数字大小1案例分
析比较数字大小实现效果:实现步骤:输入第1个数;输入第2个数;单击比较按钮;2.1【案例1】比较数字大小1案例分析比较数值大小
实现的技术知识点总结:2.1【案例1】比较数字大小2创建项目项目创建流程:创建一个空白项目创建app.json文件新增一个
index页面2.1【案例1】比较数字大小2创建项目开发者工具会自动创建pages/index目录:Index页面{"p
ages":["pages/index/index"]}2.1【案例1】比较数字大小3页面组件页面组件及功能:标签功能
标签功能视图容器图标文件文本域复选框比较结果:view组件2.
1【案例1】比较数字大小3页面组件input组件type属性值:可选值说明默认text文本输入键盘√number数字输入键
盘-idcard身份证输入键盘-digit带小数点的数字键盘-2.1【案例1】比较数字大小3页面组件值得一提
属于双边标签,由开始标签和结束标签两部分构成,属于单边标签,只有“开始标签”,且结尾用“/>”表示。值得
一提的是,也可以写成双边标签,如“”。2.1【案例1】比较数字大小3页面组件i
nput组件type属性值为number:2.1【案例1】比较数字大小4页面样式WXSS文件中的选择器:选择器示例说明.cla
ss.container选择所有class="container"的组件#id#id选择id="#id"的组件elementvie
w选择所有view组件element,elementview,text选择所有view组件和所有text组件::aftervi
ew::after在view组件内的后面插入内容::beforeview::before在view组件内的前面插入内容2.1【案
例1】比较数字大小4页面样式选择器使用演示:class选择器element选择器::after选择器view{margin:
20px;}.container{margin:20px;}view::after{content:"测试";}2.
1【案例1】比较数字大小4页面样式不同设备的rpx与px换算关系:rpx单位规定了任何手机屏幕的宽度都为750rpx(逻辑像素
)。目标:为了方便开发人员适配各种手机屏幕设备屏幕宽度rpx换算pxpx换算rpxiPhone53201rpx=0.42px1px
=2.34rpxiPhone63751rpx=0.5px1px=2rpxiPhone6Plus4141rpx=0.552px1p
x=1.81rpx2.1【案例1】比较数字大小4页面样式物理像素:指屏幕上实际有多少个像素。逻辑像素:是指CSS中使用的像素单
位。1px1pxiphone6物理分辨率为750px×1334pxiphone6的逻辑分辨率为375px×667px2.1【案例
1】比较数字大小4页面样式对比WXSS中的rpx运行效果展示:view{margin:50rpx;}input{widt
h:600rpx;margin-top:20rpx;border-bottom:2rpxsolid#ccc;}but
ton{margin:50rpx;}2.1【案例1】比较数字大小4页面样式对比WXSS中的px运行效果展示:view{m
argin:50rpx;}input{/此处将原来的600rpx改为300px/width:300px;marg
in-top:20rpx;border-bottom:2rpxsolid#ccc;}button{margin:50
rpx;}2.1【案例1】比较数字大小4页面样式全局样式和导入外部样式:button{color:#fff;backg
round:#369;}@import"test.wxss";button{letter-spacing:12rpx;}导
入外部样式全局样式2.1【案例1】比较数字大小5配置文件页面级配置文件:属性说明navigationBarBackground
Color导航栏背景颜色,默认为“#000000”navigationBarTextStyle导航栏标题颜色,仅支持black、w
hite(默认)navigationBarTitleText导航栏的标题文字内容backgroundColor窗口的背景色,默认为
“#ffffff”backgroundTextStyle下拉loading的样式,仅支持dark(默认)、light2.1【案例
1】比较数字大小5配置文件页面级配置文件:属性说明enablePullDownRefresh是否全局开启下拉刷新,默认为fals
eonReachBottomDistance页面上拉触底事件触发时距页面底部距离(单位为px),默认为50disableScrol
l默认为false。设为true时,页面整体不能上下滚动2.1【案例1】比较数字大小5配置文件页面级文件配置导航栏标题为“数值
比较”,颜色为蓝色:{"navigationBarTitleText":"数值比较","navigationBarBackg
roundColor":"#369"}2.1【案例1】比较数字大小5配置文件应用级配置文件:属性说明pages页面路径列表w
indow全局的默认窗口表现tabBar底部tab栏的表现networkTimeout网络超时时间debug是否开启调试模式,
默认为false2.1【案例1】比较数字大小5配置文件应用级配置文件:属性说明requiredBackgroundModes需
要在后台使用的能力,如“音乐播放”plugins使用到的插件2.1【案例1】比较数字大小5配置文件networkTimeout
可以设置网络请求过程中的超时时间:属性类型说明requestNumberwx.request()的超时时间(毫秒),默认为6000
0connectSocket Numberwx.connectSocket()的超时时间(毫秒),默认为60000uploadFi
leNumberwx.uploadFile()的超时时间(毫秒),默认为60000downloadFileNumberwx.dow
nloadFile()的超时时间(毫秒),默认为600002.1【案例1】比较数字大小5配置文件开启了调试,运行程序后,就会在
控制台中输出调试信息:{"pages":["pages/index/index"],"debug":true}2.1【案
例1】比较数字大小6页面逻辑Page()函数参数对象的属性:属性类型说明dataObject页面的初始数据onLoadFunct
ion生命周期回调函数,监听页面加载onReadyFunction生命周期回调函数,监听页面初次渲染完成onShowFunctio
n生命周期回调函数,监听页面显示onHideFunction生命周期回调函数,监听页面隐藏onUnloadFunction生命周期
回调函数,监听页面卸载2.1【案例1】比较数值大小6页面逻辑Page()函数参数对象的属性:属性类型说明onPullDownR
efreshFunction页面事件处理函数,监听用户下拉动作onReachBottomFunction页面事件处理函数,页面上拉
触底onShareAppMessageFunction页面事件处理函数,用户单击右上角的分享按钮onPageScrollFunct
ion页面事件处理函数,页面滚动会连续触发其他Any开发者可以添加任意的函数或者数据到data中,在页面的函数中可以通过this.
来访问。2.1【案例1】比较数值大小6页面逻辑onLoad、onReady、onShow函数为例进行演示:onLoad:f
unction(options){console.log(''页面加载'')},onReady:function(){c
onsole.log(''页面初次渲染完成'')},onShow:function(){console.log(''页面显示'')
},2.1【案例1】比较数字大小6页面逻辑生命周期回调函数的区别分析如下:onLoad:页面加载时触发,一个页面只会调用一次。
onReady:页面初次渲染完成的时候调用。onShow:当页面显示时触发。onHide:当页面隐藏时触发。onUnload:页面
卸载时触发。2.1【案例1】比较数字大小6页面逻辑值得一提单击“…”会在底部弹出一个菜单,在菜单中有一项“转发”,单击转发就会
触发onShareAppMessage事件。单击“?”可以在前台、后台之间切换。2.1【案例1】比较数字大小6页面逻辑onLo
ad函数中的options参数传递流程:pages/index/index.jspages/test/test.jsonReady
:function(){wx.navigateTo({url:''/pages/test/test?name1=value
1&name2=value2''})},onLoad:function(options){console.log(opti
ons)},2.1【案例1】比较数字大小6页面逻辑pages/index/index.js中使用这3个页面处理函数:onPul
lDownRefresh:function(){console.log(''此时用户下拉触顶'')},onReachBottom
:function(){console.log(''此时用户上拉触底'')},onPageScroll:function(o
ptions){console.log(''此时用户正在滚动页面'')console.log(''滚动距离:''+options
.scrollTop)},2.1【案例1】比较数字大小6页面逻辑组件事件处理函数用于为组件绑定事件:ap="compare">比较compare:function(e){console.log(''比较按钮
被单击了'')console.log(e)},2.1【案例1】比较数字大小6页面逻辑对比e.target和e.currentT
arget:outer
inner
viewtap:function(e){console.log(e.target.id
+''-''+e.currentTarget.id)},子元素id父元素id2.1【案例1】比较数字大小6页面逻辑常用的冒
泡事件:属性类型touchstart手指触摸动作开始touchmove手指触摸后移动touchcancel手指触摸动作被打断,如来
电提醒,弹窗touchend手指触摸动作结束tap手指触摸后马上离开longpress手指触摸后,超过350ms再离开。如果指定了
事件回调函数并触发了这个事件,tap事件将不被触发2.1【案例1】比较数字大小6页面逻辑值得一提冒泡事件是指当一个组件上的事件
被触发后,事件会向父节点传递,而非冒泡事件不会向父节点传递。一些组件还拥有一些专门的事件,如form组件的submit事件、inp
ut组件的input事件等2.1【案例1】比较数字大小6页面逻辑事件冒泡和绑定:单击outer触发outer单击inner触发
middle、inner单击middle触发middle2.1【案例1】比较数字大小7注册程序在app.js文件中调用App(
)函数:onLaunch:function(options){console.log(''onLaunch执行'')},onSho
w:function(options){console.log(''onShow执行'')},onHide:function(
){console.log(''onHide执行'')},onError:function(error){console.log
(''onError执行'')},onPageNotFound:function(options){console.log(''o
nPageNotFound执行'')}2.1【案例1】比较数值大小7注册程序在app.js文件中调用App()函数:2.1【案
例1】比较数字大小7注册程序onLaunch()和onShow()函数触发后返回的字段:path:打开小程序的路径。query:
打开小程序的query。scene:打开小程序的场景值。shareTicket:获取到shareTicket。referrerIn
fo:获取来源于小程序、公众号的AppId等。2.1【案例1】比较数字大小7注册程序App()函数中还可以保存一些在所有页面中
共享的数据:注册数据打印数据onReady:function(){varapp=getApp()console.l
og(app.num)app.test()},App({num:123,test:function(){console
.log(''test'')}})2.1【案例1】比较数字大小8实现比较功能给两个input组件绑定不同事件num1Change
、num2Change:事件绑定事件处理函数num1change:function(e){this.num1=Numb
er(e.detail.value)},num2change:function(e){this.num2=Number
(e.detail.value)},<
inputtype="number"bindchange="num2change"/>2.1【案例1】比较数字大小8实现
比较功能比较功能:事件绑定事件处理函数比较compare:
function(){varstr=''两数相等''if(this.num1>this.num2){str=
''第1个数大''}elseif(this.num1setData({result:str})},2.1【案例1】比较数字大小8实现比较功能通过id和dataset获取元素:通
过id获取元素通过dataset获取"change2"/>e2"/>id="num2"type="number"bindchange="change"/>2.1【案例1】比较数字大小8实
现比较功能在text组件上处理计算逻辑:事件处理函数页面数据比较比较结果:{{num1>num2?''第1个数
大'':(num1change3:function
(e){vardata={}data[e.target.dataset.id]=Number(e.detail.v
alue)this.setData(data)},2.1【案例1】比较数字大小8实现比较功能通过条件渲染的方式比较大小:wx
:ifnum2}}">比较结果:第1个数大
="{{num1比较结果:第2个数大比较结果:两数相等t>num2}}">比较结果:第1个数大{num1比较结果:第2个数大
比较结果:两数相等wx:ifwx:else2.1【案例1】比较数字大小8实现比较功能通过表单获取input组件
的值,比较结果:事件处理函数表单组件formCompare:function(e){varstr=''两数相等''var
num1=Number(e.detail.value.num1)varnum2=Number(e.detail.va
lue.num2)…this.setData({result:str})},pare">2.2【案例2】调查问卷1案例分析调查问卷效果展示:实现步骤:填写表单数据;提交发送到服务器;后
台数据渲染到页面;2.2【案例2】调查问卷2编写表单页面页面代码结构:
............>提交2.2【案例2】调查问卷3服务器数
据交互Express安装和使用流程:初始化项目安装Express框架安装nodemon监控文件修改创建服务;启动服务;serv
erclient2.2【案例2】调查问卷3服务器数据交互用代码创建服务:创建服务;监听端口;constapp=exp
ress()app.use(bodyParser.json())//处理POST请求app.post(''/'',(req,re
s)=>{console.log(req.body)res.json(req.body)})//监听3000端口app.
listen(3000,()=>{console.log(''serverrunningathttp://127.0.
0.1:3000'')})2.2【案例2】调查问卷3服务器数据交互利用wx.request()向本地HTTP服务器发送POS
T请求:submit:function(e){wx.request({method:''post'',url:''http
://127.0.0.1:3000/'',data:e.detail.value,success:function(res
){console.log(res)}})},2.2【案例2】调查问卷3服务器数据交互利用wx.request()
向本地HTTP服务器发送POST请求:2.2【案例2】调查问卷4表单数据绑定请求接口获取后台数据:前台代码后台接口app.
get(''/'',(req,res)=>{res.json(data)})onLoad:function(options
){wx.request({url:''http://127.0.0.1:3000/'',success:res=>{
this.setData(res.data)}})},2.2【案例2】调查问卷4表单数据绑定值得一提值得一提的是,由
于wx.request()参数中的method属性的默认值为GET,因此在发送GET请求时可以省略method属性。2.3【案例
3】计算器1案例分析计算器功能介绍:加(+)减(-)乘(×)除(÷)取余(%)Delete删除C全部清空2.3【案例3】计
算器2编辑计算器页面计算器页面的整体布局:...
?ss="btns">...page{display:flex;height:100%flex-direction:column;}.result{flex:1;background:#f3f6fe;}.btns{flex:1;}2.3【案例3】计算器2编辑计算器页面计算器按钮样式:btns{flex:1;display:flex;flex-direction:column;font-size:17pt;border-top:1rpxsolid#ccc;border-left:1rpxsolid#ccc;}….2.3【案例3】计算器2编辑计算器页面计算结果页面:计算结果展示区.result{flex:1;background:#f3f6fe;position:relative;}…计算按钮区2.3【案例3】计算器3实现计算逻辑功能编写按钮的事件处理函数:?result:null,?isClear:false,resetBtn:function(){}?delBtn:function(){},?numBtn:function(e){},??opBtn:function(e){},?dotBtn:function(){},?本章总结本章主要围绕微信小程序的组件、样式、配置文件、数据绑定等内容进行讲解,通过案例将这些知识应用到小程序的开发中,帮助读者掌握小程序的开发基础,并对后面的学习做了铺垫。
献花(0)
+1
(本文系摘摘摘丿丿...首藏)