微信小程序--》数据请求和页面导航

简介: ⚓经过web前端开发的学习,相信大家对于前端开发有了一定深入的了解,今天我开设了微信小程序专栏,主要想从移动端开发方向进一步发展,而对于我来说写移动端博文的第一站就是小程序开发,希望看到我文章的朋友能对你有所帮助。

🎪数据请求

🍇网络请求的限制

出于安全性方面的考虑,小程序官方对数据接口的请求做出了如下两个限制:

①只能请求 HTTPS 类型的接口

②必须将接口的域名添加到信任列表

信任列表如下,默认情况下是空的,即未设置,需要我们进行合法域名的配置

图片.png

🍈配置 request 合法域名

注意事项:


①域名只支持 https 协议

②域名不能使用 ip 地址 或者 loaclhost

③域名必须经过 ICP 备案

④服务器域名 一个月内最多可申请5次修改

图片.png

图片.png

图片.png

🍉发起 GET 请求

调用微信小程序提供的 wx.request() 方法,可以发起 GET 数据请求。代码如下:

wx.request({
url: 'https://www.baidu.com/', //请求接口的地址,必须基于 https 协议method:'GET', //请求的方式data:{//发送到服务器的数据name:'张三',
age:18  },
success:(res)=>{//请求成功后的回调函数console.log(res);
  }
})

图片.png

🍊发起 POST 请求

调用微信小程序提供的 wx.request() 方法,可以发起 POST 数据请求。代码如下:

wx.request({
url: 'https://www.baidu.com/', //请求接口的地址,必须基于 https 协议method:'POST', //请求的方式data:{//发送到服务器的数据name:'李四',
age:18  },
success:(res)=>{//请求成功后的回调函数console.log(res);
  }
})

图片.png

🍋页面刚加载-请求数据

在很多情况下,我们需要在页面刚加载的时候,自动请求一些初始化的数据,此时需要在页面的onLoad事件中调用获取数据的函数。比如刚进页面就加载post请求,在js文件添加命令,代码如下:

/** * 生命周期函数--监听页面加载 */onLoad(options) {
this.postInfo()
}

🍌跳过 request 合法域名校验

如果后端程序员仅仅提供了 http 协议的接口,暂时没有提供 https 协议的接口。此时为了不耽误开发的进度,我们可以在微信开发者工具中,临时开启 [不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书] 选项,跳过 request 合法域名的校验。

注意:跳过 request 合法域名校验的选项,仅限在开发与调试中使用!

图片.png

🍍关于跨域和Ajax的说明

跨域问题只存在于基于浏览器的Web开发中。由于小程序的宿主环境不是浏览器,而是微信客户端,所以小程序中不存在跨域问题。

Ajax技术(关注博主,后期会单独讲解Ajax)的核心依赖于浏览器中的XMLHttpRequest这个对象,由于小程序的宿主环境是微信客户端,所以小程序不能叫做“发起Ajax请求”,而是叫做发起“网络数据请求”。

🎪页面导航

页面导航指的是页面之间的相互跳转。例如:浏览器中实现页面导航的方式有两种方式,分别是<a>链接 和 loaction.href,而小程序实现页面导航也有两种方式,如下:

🍇声明式导航

在页面上声明一个<navigator>导航组件

通过点击<navigator>组件实现页面跳转

导航到tabBar页面

tabBar页面指的是被配置为tabBar的页面。在使用<navigator>组件跳转到指定的tabBar页面时,需要指定url(https://developer.aliyun.com/%E8%A1%A8%E7%A4%BA%E8%A6%81%E8%B7%B3%E8%BD%AC%E7%9A%84%E9%A1%B5%E9%9D%A2%E5%9C%B0%E5%9D%80%EF%BC%8C%E5%BF%85%E9%A1%BB%E4%BB%A5%20/%20%E5%BC%80%E5%A4%B4)属性和open-type(表示跳转的方式,属性必须是switchTab)属性,代码如下:

<navigatorurl="/pages/message/message"open-type="switchTab">导航到消息页面</navigator>

图片.png

导航到非tabBar页面

非tabBar页面指的是没有配置为tabBar的页面。在使用<navigator>组件跳转到普通的非tabBar页面时,则需要指定url(https://developer.aliyun.com/%E8%A1%A8%E7%A4%BA%E8%A6%81%E8%B7%B3%E8%BD%AC%E7%9A%84%E9%A1%B5%E9%9D%A2%E5%9C%B0%E5%9D%80%EF%BC%8C%E5%BF%85%E9%A1%BB%E4%BB%A5%20/%20%E5%BC%80%E5%A4%B4)属性和open-type(表示跳转的方式,属性必须是navigate)属性,为了简便,在导航到非tabBar页面时,open-type="navigate"属性可以省略,代码如下:

<navigatorurl="/pages/person/person"open-type="navigate">导航到person页面</navigator>

图片.png

后退导航

如果要后退到上一页或多级页面,则需要指定open-type(值必须是navigateBack,表示要进行后退导航)属性dalta(指必须是数字,表示要后退的层级)属性,为了简便,如果只是后退到上一页面,则可以省略delta属性,其默认值就是1,代码如下:

<navigatoropen-type="navigateBack"delta='1'>返回上一页</navigator>

图片.png

🍈编程式导航

调用小程序的导航API,实现页面的跳转

导航到tabBar页面

调用wx.switchTab(Object object)方法,可以跳转到tabBar页面。其中Object参数对象属性列表如下:

属性 类型 必选 说明
url string 需要跳转的tabBar页面的路径,路径后不能带参数
success function 接口调试成功的回调函数
fail function 接口调试失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会只想)


示例代码如下

//页面结构
<buttonbindtap="gotoMessage">跳转到消息页面</button>// 通过编程式导航,跳转到message页面
gotoMessage(){
  wx.switchTab({
    url: '/pages/message/message',
  })
}

图片.png

导航到非tabBar页面

调用wx.navigateTo(Object object)方法,可以跳转到非tabBar的页面,其中Object参数对象的属性列表和wx.switchTab属性列表一致。示例代码如下:

//页面结构
<buttonbindtap="gotoPerson">跳转到person页面</button>//通过编程式导航,跳转到person页面
gotoPerson(){
  wx.navigateTo({
    url: '/pages/person/person',
  })
},

图片.png

后退导航

调用wx.navigateBack(Object object)方法,可以返回上一页或多级页面,其中Object参数对象可选属性列表和上面列表大体一致,唯一区别在于url换成了dalta。 示例代码如下:

//页面结构
<buttonbindtap="gotoBack">后退</button>// 编程式导航,返回上一页
gotoBack(){
  wx.navigateBack()
}

图片.png

🍉导航传参

声明式导航传参

navigator组件的url属性用来指定将要跳转到的页面路径。同时,路径的后面还可以携带参数,参数与路径之间要使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔。示例代码如下:

<navigatorurl="/pages/person/person?name=张三&age=18">跳转到person页面</navigator>

图片.png

编程式导航传参

调用wx.navigateTo(Object object)方法跳转页面时,也可以携带参数,如下:

//页面结构
<buttonbindtap="gotoMessage">跳转到消息页面</button>// 通过编程式导航,跳转到message页面,并携带参数
gotoMessage(){
  wx.navigateTo({
    url: '/pages/message/message?name=张三&age=18',
  })
}

在onLoad中接受导航参数

通过声明式导航传参或编程式导航传参,可以直接在onLoad事件中直接获取到,示例如下:

/** * 生命周期函数--监听页面加载 */onLoad: function(options) {
// options 就是导航传递过来的参数对象console.log(options);
},

图片.png

让页面的其它函数也能访问options里面的参数

/** * 页面的初始数据 */data: {
// 导航传递的参数对象query:{}
},
/** * 生命周期函数--监听页面加载 */onLoad: function(options) {
// options 就是导航传递过来的参数对象console.log(options);
this.setData({
query:options  })
}


相关文章
|
10月前
|
缓存 小程序 API
微信小程序页面导航与路由:实现多页面跳转与数据传递
本文深入探讨微信小程序的页面导航与路由机制,介绍多种页面跳转方式如`wx.navigateTo`、`wx.redirectTo`、`wx.switchTab`等,并讲解通过URL、全局变量和事件传递数据的方法。结合案例实现多页面跳转与数据传递,帮助开发者掌握这一重要技能。
|
小程序 前端开发 开发者
小程序的页面如何布局?
【10月更文挑战第16天】小程序的页面如何布局?
939 1
|
小程序 PHP
微信小程序给 thinkphp后端发送请求出现错误 Wrong number of segments 问题的解决 【踩坑记录】
本文记录了微信小程序向ThinkPHP后端发送请求时出现"Wrong number of segments"错误的解决方法。问题原因是小程序请求header中的token变量名写错,导致token未正确传递至后端。作者提供了详细的检查步骤和建议,包括验证URL路径、参数规范和路由配置的匹配,以确保请求能正确发送和处理。
|
JSON 小程序 JavaScript
微信小程序页面事件,下拉刷新事件和上拉触底事件
这篇文章介绍了微信小程序中如何实现下拉刷新和上拉触底事件,包括开启下拉刷新、配置下拉刷新样式、监听下拉刷新事件,以及监听上拉触底事件和配置上拉触底的距离。
|
11月前
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
537 0
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
288 0
在线课堂+工具组件小程序uniapp移动端源码
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
2795 3
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
359 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
483 0
微信小程序更新提醒uniapp
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
405 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序

热门文章

最新文章