🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生
🛵个人主页:亦世凡华、
🛺系列专栏:微信小程序
🚲座右铭:人生亦可燃烧,亦可腐败,我愿燃烧,耗尽所有光芒。
👀引言
⚓经过web前端开发的学习,相信大家对于前端开发有了一定深入的了解,今天我开设了微信小程序专栏,主要想从移动端开发方向进一步发展,而对于我来说写移动端博文的第一站就是小程序开发,希望看到我文章的朋友能对你有所帮助。
目录
🎪数据请求
🍇网络请求的限制
出于安全性方面的考虑,小程序官方对数据接口的请求做出了如下两个限制:
①只能请求 HTTPS 类型的接口
②必须将接口的域名添加到信任列表中
信任列表如下,默认情况下是空的,即未设置,需要我们进行合法域名的配置
🍈配置 request 合法域名
注意事项:
①域名只支持 https 协议
②域名不能使用 ip 地址 或者 loaclhost
③域名必须经过 ICP 备案
④服务器域名 一个月内最多可申请5次修改
🍉发起 GET 请求
调用微信小程序提供的 wx.request() 方法,可以发起 GET 数据请求。代码如下:
wx.request({
url: 'https://www.baidu.com', //请求接口的地址,必须基于 https 协议
method:'GET', //请求的方式
data:{//发送到服务器的数据
name:'张三',
age:18
},
success:(res)=>{//请求成功后的回调函数
console.log(res);
}
})
🍊发起 POST 请求
调用微信小程序提供的 wx.request() 方法,可以发起 POST 数据请求。代码如下:
wx.request({
url: 'https://www.baidu.com', //请求接口的地址,必须基于 https 协议
method:'POST', //请求的方式
data:{//发送到服务器的数据
name:'李四',
age:18
},
success:(res)=>{//请求成功后的回调函数
console.log(res);
}
})
🍋页面刚加载-请求数据
在很多情况下,我们需要在页面刚加载的时候,自动请求一些初始化的数据,此时需要在页面的onLoad事件中调用获取数据的函数。比如刚进页面就加载post请求,在js文件添加命令,代码如下:
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.postInfo()
}
🍌跳过 request 合法域名校验
如果后端程序员仅仅提供了 http 协议的接口,暂时没有提供 https 协议的接口。此时为了不耽误开发的进度,我们可以在微信开发者工具中,临时开启 [不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书] 选项,跳过 request 合法域名的校验。
注意:跳过 request 合法域名校验的选项,仅限在开发与调试中使用!
🍍关于跨域和Ajax的说明
跨域问题只存在于基于浏览器的Web开发中。由于小程序的宿主环境不是浏览器,而是微信客户端,所以小程序中不存在跨域问题。
Ajax技术(关注博主,后期会单独讲解Ajax)的核心依赖于浏览器中的XMLHttpRequest这个对象,由于小程序的宿主环境是微信客户端,所以小程序不能叫做“发起Ajax请求”,而是叫做发起“网络数据请求”。
🎪页面导航
页面导航指的是页面之间的相互跳转。例如:浏览器中实现页面导航的方式有两种方式,分别是<a>链接 和 loaction.href,而小程序实现页面导航也有两种方式,如下:
🍇声明式导航
在页面上声明一个<navigator>导航组件
通过点击<navigator>组件实现页面跳转
导航到tabBar页面
tabBar页面指的是被配置为tabBar的页面。在使用<navigator>组件跳转到指定的tabBar页面时,需要指定url(表示要跳转的页面地址,必须以 / 开头)属性和open-type(表示跳转的方式,属性必须是switchTab)属性,代码如下:
<navigator url="/pages/message/message" open-type="switchTab">导航到消息页面</navigator>
导航到非tabBar页面
非tabBar页面指的是没有配置为tabBar的页面。在使用<navigator>组件跳转到普通的非tabBar页面时,则需要指定url(表示要跳转的页面地址,必须以 / 开头)属性和open-type(表示跳转的方式,属性必须是navigate)属性,为了简便,在导航到非tabBar页面时,open-type=”navigate”属性可以省略,代码如下:
<navigator url="/pages/person/person" open-type="navigate">导航到person页面</navigator>
后退导航
如果要后退到上一页或多级页面,则需要指定open-type(值必须是navigateBack,表示要进行后退导航)属性和dalta(指必须是数字,表示要后退的层级)属性,为了简便,如果只是后退到上一页面,则可以省略delta属性,其默认值就是1,代码如下:
<navigator open-type="navigateBack" delta='1'>返回上一页</navigator>
🍈编程式导航
调用小程序的导航API,实现页面的跳转
导航到tabBar页面
调用wx.switchTab(Object object)方法,可以跳转到tabBar页面。其中Object参数对象属性列表如下:
属性 | 类型 | 必选 | 说明 |
---|---|---|---|
url | string | 是 | 需要跳转的tabBar页面的路径,路径后不能带参数 |
success | function | 否 | 接口调试成功的回调函数 |
fail | function | 否 | 接口调试失败的回调函数 |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会只想) |
示例代码如下
//页面结构
<button bindtap="gotoMessage">跳转到消息页面</button>
// 通过编程式导航,跳转到message页面
gotoMessage(){
wx.switchTab({
url: '/pages/message/message',
})
}
导航到非tabBar页面
调用wx.navigateTo(Object object)方法,可以跳转到非tabBar的页面,其中Object参数对象的属性列表和wx.switchTab属性列表一致。示例代码如下:
//页面结构
<button bindtap="gotoPerson">跳转到person页面</button>
//通过编程式导航,跳转到person页面
gotoPerson(){
wx.navigateTo({
url: '/pages/person/person',
})
},
后退导航
调用wx.navigateBack(Object object)方法,可以返回上一页或多级页面,其中Object参数对象可选属性列表和上面列表大体一致,唯一区别在于url换成了dalta。 示例代码如下:
//页面结构
<button bindtap="gotoBack">后退</button>
// 编程式导航,返回上一页
gotoBack(){
wx.navigateBack()
}
🍉导航传参
声明式导航传参
navigator组件的url属性用来指定将要跳转到的页面路径。同时,路径的后面还可以携带参数,参数与路径之间要使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔。示例代码如下:
<navigator url="/pages/person/person?name=张三&age=18">跳转到person页面</navigator>
编程式导航传参
调用wx.navigateTo(Object object)方法跳转页面时,也可以携带参数,如下:
//页面结构
<button bindtap="gotoMessage">跳转到消息页面</button>
// 通过编程式导航,跳转到message页面,并携带参数
gotoMessage(){
wx.navigateTo({
url: '/pages/message/message?name=张三&age=18',
})
}
在onLoad中接受导航参数
通过声明式导航传参或编程式导航传参,可以直接在onLoad事件中直接获取到,示例如下:
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
// options 就是导航传递过来的参数对象
console.log(options);
},
让页面的其它函数也能访问options里面的参数
/**
* 页面的初始数据
*/
data: {
// 导航传递的参数对象
query:{}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
// options 就是导航传递过来的参数对象
console.log(options);
this.setData({
query:options
})
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/140083.html