学习微信小程序之前需要明白以下三点
小程序运行在微信环境中
小程序可以调用微信提供的各种API(地理定位,扫码,支付)
小程序开发模式(申请开发账号+安装小程序开发工具+创建和配置小程序项目)
在https://mp.weixin.qq.com申请开发账号,搞到自己的APPID,然后安装微信开发者工具
第一天学习:
- 创建第一个小程序
- 小程序项目的基本组成结构
- pages存放所有小程序页面
- utils存放工具性质的模块
- app.js入口文件
- app.json全局配置文件
- app.wxss全局样式文件
- project.config.json项目配置文件
- sitemap.json配置小程序及其页面是否允许被微信索引
app.json文件(页面配置会覆盖全局配置)
- pages:当前小程序所有页面的路径
- window:当前小程序所有页面的背景色,文字颜色等
- style:小程序组件样式版本
- sitemapLocation:指明sitemap.json的位置
project.config.json文件("checkSiteMap": false)
- setting:保存了编译相关的配置
- projectname:保存项目名称
- appid:保存小程序的账号ID
新建小程序页面(app.json->pages)
修改项目首页(调整app.json/pages顺序)
WXML有什么特点(类似HTML)
标签:view,text,image,navigator
WXSS有什么特点(类似CSS)
rpx尺寸单位,全局样式和局部样式
小程序中.js文件的分类
- app.js小程序入口文件,启动小程序
- 页面的js文件,调用page()函数创建并运行页面
- 普通的js文件,封装公共函数或属性供给页面使用
宿主环境(程序运行所必须的依赖环境)
手机微信是小程序的宿主环境
- 通信模型
- 运行机制
- 组件
- API
通信的主体(渲染层和逻辑层)
1. WXML和WXSS是在渲染层
2. JS脚本在逻辑层
通信模型两部分(渲染层和逻辑层之间的通信,逻辑层和第三方服务器之间的通信)
小程序启动的过程
- 把小程序代码包下载到本地
- 解析app.json
- 执行app.js
- 渲染首页
- 小程序启动完成
页面渲染过程
- 加载解析页面的.json
- 加载页面的.wxml和.wxss
- 执行页面的.js
- 页面渲染完成
小程序组件的分类
- 视图容器(view,scroll-view,swiper,swiper-item)
- 基础内容(text,rich-text)
- 其他常用组件(button,image,navigator)
- 表单组件
- 导航组件
- map地图组件
/* pages/list/list.wxss */
.container1 view {
width: 100px;
height: 100px;
text-align: center;
line-height: 100px;
}
.container1 view:nth-child(1){
background-color: lightgreen;
}
.container1 view:nth-child(2){
background-color: lightskyblue;
}
.container1 view:nth-child(3){
background-color: lightpink;
}
.container1 {
display: flex;
justify-content: space-around;
}
.container2 {
border: 1px solid red;
height: 100px;
width: 100%;
}
.container2 view {
width: 100%;
height: 80px;
text-align: center;
line-height: 80px;
}
.container2 view:nth-child(1){
background-color: lightgreen;
}
.container2 view:nth-child(2){
background-color: lightskyblue;
}
.container2 view:nth-child(3){
background-color: lightpink;
}
.swiper-container {
height: 150px;
}
.item{
height: 100%;
line-height: 150px;
text-align: center;
}
swiper-item:nth-child(1) .item{
background-color: lightseagreen;
}
swiper-item:nth-child(2) .item{
background-color: lightsalmon;
}
swiper-item:nth-child(3) .item{
background-color: lightgray;
}
小程序API分类
- 事件监听API(以on开头,监听事件的触发)
- 同步API(以Sync结尾,通过函数返回值直接获取执行结果,执行错误抛异常)
- 异步API (需要通过success,fail,complete接收调用结果)
第二天学习:
WXML模板语法-数据绑定(数据绑定,动态绑定属性,数值运算,wx:if , wx:for)
Page({
/**
* 页面的初始数据
*/
data: {
info: 'hello world',
imgSrc: 'http://www.itheima.com/images/logo.png',
randomNum1: Math.random() * 10,
randomNum2: Math.random().toFixed(2)
}
})
<view>{{info}}</view>
<image src="{{imgSrc}}" mode="widthFix"></image>
<view>{{randomNum1 >= 5 ? '数字大于或等于5' : '数字小于5'}}</view>
<view>{{randomNum2 * 100}}</view>
WXML模板语法-事件绑定
事件是渲染层到逻辑层的通信方式(tap事件,input事件,change事件)
Page({
/**
* 页面的初始数据
*/
data: {
count: 0
},
btnTapHandler(e){
console.log(e)
},
changeCount(){
this.setData({
count: this.data.count + 1
})
},
btnTap2(e) {
this.setData({
count: this.data.count + e.target.dataset.info
})
}
})
<button type="primary" bindtap="btnTapHandler">按钮</button>
<button type="primary" bindtap="changeCount">{{count}}</button>
<button type="primary" bindtap="btnTap2" data-info="{{2}}">{{count}}</button>
全局配置window导航栏
版权声明:本文为weixin_44420767原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。