Request

官方文档

wx.request相当于发送ajax请求

参数

属性 类型 默认值 必填 说明
url string   开发者服务器接口地址
data string/object/ArrayBuffer   请求的参数
header Object   设置请求的 header,header 中不能设置 Referer。content-type 默认为 application/json
method string GET HTTP 请求方法
dataType string json 返回的数据格式
responseType string text 响应的数据类型
success function   接口调用成功的回调函数
fail function   接口调用失败的回调函数
complete function   接口调用结束的回调函数(调用成功、失败都会执行

object.dataType 的合法值

说明
json 返回的数据为 JSON,返回后会对返回的数据进行一次 JSON.parse
其他 不对返回的内容进行 JSON.parse

object.success 回调函数

参数

Object res

属性 类型 说明
data string/Object/Arraybuffer 开发者服务器返回的数据
statusCode number 开发者服务器返回的 HTTP 状态码
header Object 开发者服务器返回的 HTTP Response Header

eg:

小程序:

test.wxml
<!--request-->
<button bind:tap='req'>点击</button>
test.js
Page({
req:function(){
wx.request({
url: 'http://127.0.0.1:8000/test/', // 路径
data:{'name':'xionger'}, // 数据
method:'POST', // 请求方式
header: { "content-type": "application/json"}, // 请求头
// 回调函数
success:function(res){
console.log(res) // 回调数据
}
})
},

后端 django

urls.py
url(r'^test/', views.Test.as_view()),
views.py
from rest_framework.views import APIView
from rest_framework.response import Response
class Test(APIView):
def post(self, request):
request_data = request.data
print(request_data)
return Response({'code':200, 'msg': 'ok'})

小程序路由跳转

官方文档

wx.switchTab

1.跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
2.不能携带数据
这里的tabBar是底下的导航栏指定的页面,

参数

属性 类型 默认值 必填 说明
url string   需要跳转的 tabBar 页面的路径(需在 app.json 的 tabBar字段定义的页面),路径后不能带参数。
success function   接口调用成功的回调函数
fail function   接口调用失败的回调函数
complete function   接口调用结束的回调函数(调用成功、失败都会执行

eg:

test.wxml
<button bind:tap="click">switchTab</button>
test.js
Page({
click:function(){
//必须是tabBar页面,不能携带参数
wx.switchTab({
url: '/pages/index/index', // tabBar中的页面路径
})
},
})

wx.reLaunch

1.关闭所有页面,打开到应用内的某个页面
2.跳转url中可携带拼接数据

参数

属性 类型 默认值 必填 说明
url string   需要跳转的应用内页面路径,路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2'
success function   接口调用成功的回调函数
fail function   接口调用失败的回调函数
complete function   接口调用结束的回调函数(调用成功、失败都会执行)

eg

test.js
click:function(){
var name = "123";
wx.reLaunch({
url: "/pages/test3/test3?name="+name
})
}

wx.redirectTo

1.关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。
2.跳转url中可携带拼接数据

参数

属性 类型 默认值 必填 说明
url string   需要跳转的应用内非 tabBar 的页面的路径, 路径后可以带参数。参数与路径之间使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔;如 'path?key=value&key2=value2'
success function   接口调用成功的回调函数
fail function   接口调用失败的回调函数
complete function   接口调用结束的回调函数(调用成功、失败都会执行)

eg

test.js
wx.redirectTo({
url: 'test?id=1'
})

wx.navigateTo

1.保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。
小程序中页面栈最多十层
2.跳转url中可携带拼接数据

参数

属性 类型 默认值 必填 说明
url string   需要跳转的应用内非 tabBar 的页面的路径, 路径后可以带参数。参数与路径之间使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔;如 'path?key=value&key2=value2'
success function   接口调用成功的回调函数
fail function   接口调用失败的回调函数
complete function   接口调用结束的回调函数(调用成功、失败都会执行)

eg

click:function(){
//必须是tabBar页面,可携带数据
wx.navigateTo({
url: "/pages/test3/test3?name=haha"
})
},

补充

test.exml
<navigator url="/pages/test2/test2" >跳转到新页面</navigator>

存储数据到本地以及本地获取数

官方文档

wx.setStorageSync 同步存储

test.wxml
<!--本地存储-->
<button bind:tap="cun">存</button> <button bind:tap="qu">取</button>
test.js
Page({
cun: function () {
wx.setStorageSync('key', 'data')
},
qu: function () {
console.log(wx.getStorageSync('key'))
wx.clearStorageSync("key") // 删除本地存储的key值 },
})

wx.setStorage 异步存储

属性 类型 默认值 必填 说明
key string   本地缓存中指定的 key
data any   需要存储的内容。只支持原生类型、Date、及能够通过JSON.stringify序列化的对象。
success function   接口调用成功的回调函数
fail function   接口调用失败的回调函数
complete function   接口调用结束的回调函数(调用成功、失败都会执行)

示例代码

wx.setStorage({
key: 'key',
data: 'value'
}) try {
wx.setStorageSync('key', 'value')
} catch (e) { }

上面的两个就是一个是同步的一个是异步的,还是有区别的,想用哪一个看你的业务来定

注 : 摘自 小猿取经

微信小程序 - Request | 路由跳转 | 本地存储的更多相关文章

  1. 微信小程序中路由跳转

    一.是什么 微信小程序拥有web网页和Application共同的特征,我们的页面都不是孤立存在的,而是通过和其他页面进行交互,来共同完成系统的功能 在微信小程序中,每个页面可以看成是一个pageMo ...

  2. 微信小程序request(ajax)接口请求封装

    微信小程序request(ajax)接口请求封装 最近在进行小程序的编写,需要调用后端接口,经常要用到wx.request方法,所以就自己封装了一下,简化一下代码,如果能给大家提供帮助更好,在封装的时 ...

  3. 微信小程序-导航 & 路由

    微信小程序-导航 & 路由 页面跳转 页面路由 页面栈, 框架以栈的形式维护了当前的所有页面. https://developers.weixin.qq.com/miniprogram/dev ...

  4. 微信小程序点击保存图片到本地相册——踩坑

    在微信小程序中要保存图片到本地相册,需要获取相册权限. 总之整个功能实现下来需要如下几个小程序的API:wx.getSetting,wx.authorize,wx.openSetting,wx.dow ...

  5. 微信小程序之 页面跳转 及 调用本地json的假数据调试

    一.微信小程序 跳转页面 小程序页面有2种跳转,可以在wxml页面或者js中: (1)在wxml页面中: <navigator url="../index/index"> ...

  6. 微信小程序开发--路由切换,页面重定向

    这段时间开发了一个微信小程序,虽然小程序的导航API 官方文档写得很详细,但是在具体开发过程中还是会遇到很多不明白,或者一时转不过弯的地方. 1.页面切换传参,参数读取 1.1  wx.navigat ...

  7. 微信小程序页面无法跳转

    推荐网址:https://www.jianshu.com/p/e56b55334585 1.无法跳转原因分析 要跳转的路径在app.js里未注册过或路径写错   要跳转的路径是否位于TabBar中 页 ...

  8. 微信小程序:页面跳转时传递数据到另一个页面

    一.功能描述 页面跳转时,同时把当前页面的数据传递给跳转的目标页面,并在跳转后的目标页面进行展示 二.功能实现 1. 代码实现 test1页面 // pages/test1/test1.js Page ...

  9. 微信小程序开发系列七:微信小程序的页面跳转

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...

随机推荐

  1. layim+signalr2.0+mongodb在线轻聊版解决方案(可提供演示)

    本内容有版权限制,仅提供学习交流参考等等,请勿随便转载或者代码商用.     /** layui-v2.1.5 MIT License By http://www.layui.com */; layu ...

  2. matplotlib动态绘图

    目录 package Process 解决中文乱码问题 simple_plot() scatter_plot() three_dimension_scatter() Jupyter notebook ...

  3. ROS机器人路径规划介绍--全局规划

    ROS机器人路径规划算法主要包括2个部分:1)全局路径规划算法:2)局部路径规划算法: 一.全局路径规划 global planner ROS 的navigation官方功能包提供了三种全局路径规划器 ...

  4. JS解决所有浏览器连续输入英文字母不换行问题,包括火狐(转)

    问题描述: <p style="font-size:12px;line-height:30px;">测试数据测试数据</p> p标签内如果输入一长段英文字符 ...

  5. vue开发 element的select下拉框设定初值后,不能重新选择的问题

    问题描述: 用的element的select可多选的下拉选框,在回显后有初始值的情况下,不能修改,也不能再选择 如图,明明点击了一般内勤主管,但没有任何反应 <el-select v-model ...

  6. 【前端知识体系-NodeJS相关】NodeJS高频前端面试题整理

    1. 为什么JavaScript是单线程? 防止DOM渲染冲突的问题: Html5中的Web Worker可以实现多线程 2.什么是任务队列? 任务队列"是一个先进先出的数据结构,排在前面的 ...

  7. ScreenToGif——gif动图工具使用说明

    前言 最近因回复了博客园的某篇博文并留言求推荐制作gif动图的工具,随后一名热心园友向我推荐了ScreenToGif 不试不知道,一试我就喜欢上了这款动图制作工具(再也不用PS来制作了,虽然我也不会2 ...

  8. 【UOJ#60】【UR #5】怎样提高智商

    [UOJ#60][UR #5]怎样提高智商 题面 UOJ 题解 首先猜猜答案是\(4*3^{n-1}\).即前面的选啥都行,后面的搞搞就行了. 而打表(看题解),可以知道答案就是这个,并且每个问题都是 ...

  9. 使用NumPy、Numba的简单使用(一)

    Numpy是python的一个三方库,主要是用于计算的,数组的算数和逻辑运算.与线性代数有关的操作. 很多情况下,我们可以与SciPy和 Matplotlib(绘图库)一起使用.来替代MatLab,下 ...

  10. 关于如何提高缓存命中率(redis)

    一.缓存命中率的介绍 命中:可以直接通过缓存获取到需要的数据. 不命中:无法直接通过缓存获取到想要的数据,需要再次查询数据库或者执行其它的操作.原因可能是由于缓存中根本不存在,或者缓存已经过期. 通常 ...