微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用
张小龙发布时间2017年1月9日
a. 微信小程序用开发者工具来查看预览页面,H5用浏览器来查看渲染页面
b. 微信小程序扩展了底层能力,H5调用底层能力比较弱
c. 微信小程序没有完整的JS API,但H5拥有完整的JS API(EcmaScript,DOM,BOM)开发能力
d. 渲染机制不同:微信小程序渲染线线程和逻辑线程是独立并行运行的,而H5只是一个线程
注册微信小程序账号,然后安装微信开发者工具,接着创建小程序项目,就可以了。
a. xxx.wxml :模板页面(也称视图,类似于html)
常用标签:
view:相当于div
button:按钮
image:嵌入图像 类似于img
text:添加文本 相当于span
block:标签一个组织区域,最终不会渲染到页面上,相当于vue中的template
b. xxx.wxss:页面样式 相当于css
注意:用rpx代表响应式单位 类似于rem
c.xxx.js: 写页面逻辑的
d.xxx.json:页面的配置
注意:页面的json配置来源于全局(app.json)配置中window字段
在app.json的pages中直接添加新建的页面路径
{
“pages”: [
“pages/index/index”,
“pages/logs/logs”,
“pages/cate/cate”,
“pages/shopping/shopping”
]
}
a.遍历 wx:for 相当于vue的v-for
例如:
编号:{{ n+1 }}—姓名:{{ itm.name }}
注:
item:遍历的每一项
index:每一项的下标
wx:for-index:更改下标名
wx:for-item:更改每一项的名称
wx通常遍历时添加,提升遍历性能
b.条件渲染
wx:if 相当于vue的v-if true:显示,false:隐藏
wx:if 满足条件渲染
wx:else 不满足条件渲染
hidden 相当于vue的v-show的反值 true:隐藏,false:显示
例如:
this.setData()
this.setData({
list2: this.data.list2
})
自定义属性:将页面上的参数传递给js
通过触发事件,在事件方法中接收
let {index}=e.currentTarget.dataset
deleteItem(e) {
let {index}=e.currentTarget.dataset
console.log(index)
}
bind+事件名=“方法名” 向上传递事件,即事件冒泡
catch+事件名=“方法名” 阻止事件冒泡
a. 整体小程序的生命周期:
App({
onLaunch() {}, 监听小程序初始化,只触发一次
onShow(){},小程序启动或切换到前台运行
onHide(),小程序切换到后台运行
})
b. 小程序页面级别的生命周期:
Page({
//页面创建完,只触发一次,通常获取后台数据或接收另一个页面的传参时使用
onLoad() {},
//进入页面就会触发
onShow() {},
//页面离开时触发
onHide() {},
//监听页面初次渲染完成
onReady() {},
//监听页面卸载,类似于vue中destroyed
onUnload() {}
onReachBottom() {
console.log('到底页面底部')
},
//下拉触发
onPullDownRefresh() {
console.log('onPullDownRefresh')
},
//点击右上角分享时触发
onShareAppMessage() {
}
})
1.标签方式触发
vue:
小程序:
接收:通过另一个页面在onload生命周期中接收
2.编程式触发
vue:
this. r o u t e r . p u s h ( ) 小 程 序 跳 转 : w x . n a v i g a t e T o ( ) 带 历 史 回 退 w x . r e d i r e c t T o ( ) 不 保 留 历 史 , 跳 转 到 另 一 个 页 面 , 不 能 返 回 到 上 一 页 面 t h i s . router.push() 小程序跳转: wx.navigateTo() 带历史回退 wx.redirectTo() 不保留历史,跳转到另一个页面,不能返回到上一页面 this. router.push()小程序跳转:wx.navigateTo()带历史回退wx.redirectTo()不保留历史,跳转到另一个页面,不能返回到上一页面this.router.replace()
wx.switchTab() 只跳转到tabBar页面,不带回退
wx.reLaunch() 即能跳转到tabBar页面,也能跳转到非tabBar页面,不带历史回退
JS原生:XMLHttpRequest,fetch
jQuery: . a j a x , .ajax, .ajax,.getJSON, . p o s t ( ) , .post(), .post(),.get()
Vue:axios
React:fetch
微信小程序:wx.request() 与jQuery的$.ajax类似
wx.request({
url:’’, //请求的接口地址
method:‘get|post|put|delete’,//请求方式
header:{},//设置请求头
data:{}, //传参
success() {}, //成功返回
fail() {},// 失败返回
})
注意:
a.小程序请求的接口必须是https协议
b. 请求接口之前要提前配置接口请求:
第一种方法:在微信小程序后台配置request合法域名
第二种方法:在开发者工具–详情–本地配置–勾选‘不校验合法域名’
例如: