微信小程序实战-第2章 微信小程序开发基础

微信小程序实战-第2章 微信小程序开发基础

在这里插入图片描述
在这里插入图片描述

2.1 【案例1】比较数字大小

2.1.1案例分析

比较数字大小实现效果:
实现步骤:

  • 输入第1个数;
  • 输入第2个数;
  • 单击比较按钮;
    在这里插入图片描述
    比较数值大小实现的技术知识点总结:

在这里插入图片描述

2.1.2创建项目

项目创建流程:

  • 创建一个空白项目
  • 创建app.json文件
  • 新增一个index页面
    在这里插入图片描述
    在这里插入图片描述
    开发者工具会自动创建pages/index目录:

Index页面

{
  "pages":[
    "pages/index/index"
  ]
}

在这里插入图片描述

2.1.3页面组件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
值得一提:
在这里插入图片描述
input组件type属性值为number:
在这里插入图片描述

2.1.4页面样式

在这里插入图片描述
在这里插入图片描述
不同设备的rpx与px换算关系:

rpx单位规定了任何手机屏幕的宽度都为750rpx(逻辑像素)。
目标: 为了方便开发人员适配各种手机屏幕
在这里插入图片描述
**物理像素:**指屏幕上实际有多少个像素。
**逻辑像素:**是指CSS中使用的像素单位。
在这里插入图片描述
对比WXSS中的rpx运行效果展示:

view {margin: 50rpx;}
input {
  width: 600rpx;
  margin-top: 20rpx;
  border-bottom: 2rpx solid #ccc;
}
button {margin: 50rpx;}

在这里插入图片描述
对比WXSS中的px运行效果展示:

view {margin: 50rpx;}
input {
/* 此处将原来的600rpx改为300px */
  width: 300px; margin-top: 20rpx;
  border-bottom: 2rpx solid #ccc;
}
button {margin: 50rpx;}

在这里插入图片描述
全局样式和导入外部样式:

在这里插入图片描述

2.1.5配置文件

在这里插入图片描述
在这里插入图片描述
页面级文件配置导航栏标题为“数值比较”,颜色为蓝色:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开启了调试,运行程序后,就会在控制台中输出调试信息:

{
  "pages": ["pages/index/index"],
  "debug": true
}

在这里插入图片描述

2.1.6页面逻辑

在这里插入图片描述
在这里插入图片描述
onLoad、onReady、onShow函数为例进行演示:

onLoad: function (options) {
  console.log('页面加载')
},
onReady: function () {
  console.log('页面初次渲染完成')
},
onShow: function () {
  console.log('页面显示')
},

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
onLoad函数中的options参数传递流程:
在这里插入图片描述

onReady: function() {
  wx.navigateTo({
    url: '/pages/test/test?name1=value1&name2=value2'
  })
},

在这里插入图片描述

onLoad: function (options) {
  console.log(options)
},

pages/index/index.js中使用这3个页面处理函数:

onPullDownRefresh: function () {console.log('此时用户下拉触顶')},
onReachBottom: function () {console.log('此时用户上拉触底')},
onPageScroll: function (options) {
  console.log('此时用户正在滚动页面')
  console.log('滚动距离:' + options.scrollTop)
},

组件事件处理函数用于为组件绑定事件:

<button bindtap="compare">比较</button>
compare: function (e) {
  console.log('比较按钮被单击了')
  console.log(e)
},

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1.7注册程序

在app.js文件中调用App()函数:

onLaunch: function(options) {console.log('onLaunch执行')},
onShow: function (options) {console.log('onShow执行')},
onHide: function() {console.log('onHide执行')},
onError: function(error) {console.log('onError执行')},
onPageNotFound: function (options) {console.log('onPageNotFound执行')}

在这里插入图片描述
在这里插入图片描述
App()函数中还可以保存一些在所有页面中共享的数据:

在这里插入图片描述

App({
  num: 123,
  test: function() {console.log('test')}
})

在这里插入图片描述

onReady: function () {
  var app = getApp()
  console.log(app.num)
  app.test()
},

2.1.8实现比较功能

给两个input组件 绑定不同事件num1Change、num2Change:

事件绑定

<input type="number" bindchange="num1change“/>
<input type="number" bindchange="num2change" />

事件处理函数

num1change: function (e) {
  this.num1 = Number(e.detail.value)
},
num2change: function (e) {
  this.num2 = Number(e.detail.value)
},

比较功能:

事件处理函数

compare: function() {
  var str = '两数相等'
  if (this.num1 > this.num2) {
    str = '第1个数大'
  } else if (this.num1 < this.num2) {
    str = '第2个数大'
  }
  this.setData({result: str})
},

事件绑定

<button bindtap="compare">
比较</button>

在这里插入图片描述
通过id和dataset获取元素:

通过id获取元素

<input id="num1" type="number" bindchange="change" />
<input id="num2" type="number" bindchange="change" />

通过dataset获取

<input data-id="num1" type="number" bindchange="change2" />
<input data-id="num2" type="number" bindchange="change2" />

在text组件上处理计算逻辑:

事件处理函数

change3: function (e) {
  var data = {}
  data[e.target.dataset.id] = Number(e.detail.value)
  this.setData(data)
},

页面数据比较

 <text>比较结果:
{{num1 > num2 ? '第1个数大' : 
   (num1 < num2 ? '第2个数大' :
 '两数相等')}}</text>

通过条件渲染的方式比较大小:

wx:if

 <text wx:if="{{num1 > num2}}">比较结果:第1个数大</text>
  <text wx:if="{{num1 < num2}}">比较结果:第2个数大</text>
  <text wx:if="{{num1 == num2}}">比较结果:两数相等</text>

wx:if wx:else

 <text wx:if="{{num1 > num2}}">比较结果:第1个数大</text>
  <text wx:elif="{{num1 < num2}}">比较结果:第2个数大</text>
  <text wx:else>比较结果:两数相等</text>

通过表单获取input组件的值,比较结果:

事件处理函数

formCompare: function(e) {
  var str = '两数相等'
  var num1 = Number(e.detail.value.num1)
  var num2 = Number(e.detail.value.num2)this.setData({result: str})
},

表单组件

<form bindsubmit="formCompare">
</form>

2.2 【案例2】调查问卷

2.2.1案例分析

在这里插入图片描述

2.2.2编写表单页面

在这里插入图片描述

2.2.3服务器数据交互

在这里插入图片描述
在这里插入图片描述
利用wx.request()向本地HTTP服务器发送POST请求:

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.4表单数据绑定

请求接口获取后台数据:
前台代码

onLoad: function(options) {
  wx.request({
    url: 'http://127.0.0.1:3000/',
    success: res => {
      this.setData(res.data)
    }
  })
},

后台接口

app.get('/', (req, res) => {
  res.json(data)
})

在这里插入图片描述

2.3 【案例3】计算器

2.3.1案例分析

在这里插入图片描述

2.3.2编辑计算器页面

在这里插入图片描述
计算器按钮样式:

btns {
  flex: 1; display: flex;
  flex-direction: column;
  font-size: 17pt;
  border-top: 1rpx solid #ccc;
  border-left: 1rpx solid #ccc;
}.

在这里插入图片描述
计算结果页面

.result {
  flex: 1;
  background: #f3f6fe;
  position: relative;
}

在这里插入图片描述

2.3.3实现计算逻辑功能

在这里插入图片描述
本章总结

本章主要围绕微信小程序的组件、样式、配置文件、数据绑定等内容进行讲解,通过案例将这些知识应用到小程序的开发中,帮助读者掌握小程序的开发基础,并对后面的学习做了铺垫。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值