微信小程序
大约 3 分钟...
配置环境
- 微信开发者工具
- 去微信公众平台申请 APPID 号
项目结构
├─pages // 存放所有页面
│ ├─index
│ │ index.json // 页面配置
│ │ index.ts // 页面逻辑
│ │ index.wxml // 页面结构
│ │ index.wxss // 页面样式
│ └─logs
│ logs.json
│ logs.ts
│ logs.wxml
│ logs.wxss
|─utils // 存放工具
│ app.json // 全局配置
│ app.ts // 入口文件
│ app.wxss // 全局样式
│ sitemap.json // 配置小程序被微信索引的配置
概念
页面由四个文件组成,使用页面时,必须在 局样式和app.json 中进行配置,小程序会将第一个页面作为首页
WXML 和 HTML 类似是标签语言,但是和 HTML 不同,封装了自己的标签,属性节点也不同,提供了类似于 Vue 的模板语法
WXSS 和 CSS 类似,最主要的区别有提供了全局部样式,新增了 rpx 尺寸单位,仅支持部分选择器
js 文件是页面的首要语言,当然也可以选择 typescript
组件
小程序提供了以下组件:
view
创建视图
<view class="container">
<view>a</view>
<view>b</view>
<view>c</view>
</view>
scroll-view
创建滚动视图
<scoll-view class="scroll-container" scroll-y="y">
<view>a</view>
<view>b</view>
<view>c</view>
</scoll-view>
swiper
<swiper class="swiper-container">
<swiper-item>
<view>
1
</view>
</swiper-item>
<swiper-item>
<view>
2
</view>
</swiper-item>
<swiper-item>
<view>
3
</view>
</swiper-item>
< iper>
text
<text user-select="true">JQiue's notes</text>
rich-text
<rich-text nodes="<h1>123</h1>"/>
button
<button type="primary" plain="true">123</button>
image
<image src="../../assets/pic1.png" mode=""/>
条件渲染和列表渲染
wx 通过wx:if={{condition}}
来判断是否渲染,可以追加wx:elif
或wx:else
来判断
wx 通过wx:for={{array}}
来进行重复渲染,默认情况下,当前index
表示索引,当前item
表示项
页面实例
// pages/test/test.ts
Page({
/**
* 页面的初始数据
*/
data: {
msg: 'hello, world',
imgSrc: '../../assets/pic1.png'
},
/**
* 生命周期函数--监听页面加载
*/
onLoad() {},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {},
/**
* 生命周期函数--监听页面显示
*/
onShow() {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {}
})
通过模板语法来渲染数据和绑定内容
<text>{{msg}}</text>
<image src="{{imgSrc}}"></image>
模板语法是支持表达式的
<text>{{1+1}}</text>
事件绑定:
Page({
data: {
count: 0
}
onTap() {}
}}
<text>{{count}}</text>
<button bindtap="onClick">点击</button>
全局配置
前往https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html查阅
网络通信
使用wx.request
方法发送请求
wx.request({
url: this.data.url
method: 'GET',
success: (res) => {
console.log(res.data);
}
})
如果没有在微信小程序后台配置合法域名是不允许访问的非 https 域名的,但是可以在开发者工具中设置不校验合法域名
微信 API
事件监听 API,以 on 开头
同步 API,以 Sync 结尾的 API
异步 API,比如通过wx.request()
发送网络请求
最佳实践
重要的 api:
// 获取设备基础信息
wx.getSystemInfoSync()
// 获取右上角胶囊的布局位置信息
wx.getMenuButtonBoundingClientRect()
Taro
Taro 是一个开放式跨端跨框架解决方案,支持使用 React/Vue 等框架来开发小程序
# 安装 cli
npm i @tarojs/cli -g
# 使用脚手架初始化项目
taro init appName
编译程序
# dev
npm run dev:weapp
# build
npm run build:weapp
然后使用微信开发者工具打开项目根目录并运行