微信小程序请求数据的方法(wx.request)

一. 请求之前的准备工作

1. 在pages的根目录下创建js文档

1.1 在js文档中创建公共配置文件(config.js)
1.1.1 在config.js中抽出公共域名

微信小程序请求数据的方法(wx.request)_第1张图片

1.1.2 在app.js中引入config.js文件

微信小程序请求数据的方法(wx.request)_第2张图片
####### 1.1.3 在请求数据的js文件中定义
微信小程序请求数据的方法(wx.request)_第3张图片

2.请求的数据是一个对象

2.1 先获取接口(可直接获取接口数据)
/** 在请求数据的js文件中(eg:index.js)
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    that.getInfo()
  },
  getInfo()  {
  	wx.request ({
		url:  app.config.apiUrl + 'get/index' , // 拼接接口地址(前面为公共部分)
		method: 'post',
		header: {
			'content-type' : 'application/json'
		},
		success (res) {
			if (res) { 
				console.log(res.data)  // 打印查看是否请求到接口数据
				// 开始获取数据 eg: textBox(获取文字内容)
				textBox : res.data.data.list.basic.brand_story  // 根据network查看请求到的接口的结构获取相对应的数据
			}	else {
				console.log('没有数据')
			}
		}) 
  },

console.log(res.data)结果如下
微信小程序请求数据的方法(wx.request)_第4张图片
微信小程序请求数据的方法(wx.request)_第5张图片

3. 请求的数据是一个数组中的对象

3.1 需要遍历数组中的对象
请求方法和上面一样,只需现在success中先遍历数组数据
/*
* 以产品列表为例
* 产品列表中的数据: id,产品名,产品图片,产品副标题等
*/
 /**
   * 第一步
   *	 页面的初始数据
   */
  data: {
    list: [ ]
  },
  /*
  * 第二步 这里的success(res) 是wx.request({})里的,其他的上面一样
  */
   success(res) {
        if (res) {
          console.log(res.data)
          // 获取接口中的数据
          let productList = res.data.data.list.product_list.data
          // 遍历数组,获取需要的数据
          for (var i = 0; i < productList.length;i++) {
            productList[i].id;
            productList[i].title
            productList[i].ctitle
            productList[i].storage 
            productList[i].efficacy
            productList[i].product_image = app.config.imgUrl + productList[i].product_image
          }
          //  console.log(productList)
          that.setData({
          	// 将获取到的数据赋值给数组对象中
            list: productList,
          })
        } else {
          console.log('没有数据')
        }
      }

完整代码:
微信小程序请求数据的方法(wx.request)_第6张图片

4. 请求带参数的数据 (以参数id为例)

4.1 product文件传参

wxml文件:
微信小程序请求数据的方法(wx.request)_第7张图片
js文件:
微信小程序请求数据的方法(wx.request)_第8张图片
微信小程序请求数据的方法(wx.request)_第9张图片
微信小程序请求数据的方法(wx.request)_第10张图片
微信小程序请求数据的方法(wx.request)_第11张图片

4.2 productDetails接受参数

js文件
微信小程序请求数据的方法(wx.request)_第12张图片
微信小程序请求数据的方法(wx.request)_第13张图片
微信小程序请求数据的方法(wx.request)_第14张图片
这样就可以根据产品的id点击跳转到相应的产品列表

5. 请求带参数的数据(参数为page,上拉加载更多产品)

5.1 定义page的值,默认是第一页 ,如果page为0,则会加载两次页面

微信小程序请求数据的方法(wx.request)_第15张图片

5.2 获取数据,并加载出来

微信小程序请求数据的方法(wx.request)_第16张图片

6. 搜索产品功能

点击搜索框搜索产品
在这里插入图片描述
如果输入的不是关键字则出现这样的页面
微信小程序请求数据的方法(wx.request)_第17张图片

6.1 双向绑定

wxml文件
微信小程序请求数据的方法(wx.request)_第18张图片
js文件
微信小程序请求数据的方法(wx.request)_第19张图片

微信小程序请求数据的方法(wx.request)_第20张图片
微信小程序请求数据的方法(wx.request)_第21张图片

6.2 点击根据输入的关键字获取数据

微信小程序请求数据的方法(wx.request)_第22张图片

7. 将后台获取的html标签转为小程序标签

7.1 rich-text方法,缺点:获取的数据是一整个大标签 ,无法设置样式,获取的图片也不能自适应

方法: wxml文件


js文件

data : {
	introduce: ' '
}

微信小程序请求数据的方法(wx.request)_第23张图片

7.2 使用wxParse将动态获取后台的html转换为小程序标签(可以实现图片自适应,可以根据data)
7.2.1 需要先在git上下载wxParse (下载地址: https://github.com/icindy/wxParse )
7.2.2 在需要使用wxParse的wxss文件中引入wxParse.wxss样式文件
@import "/page/wxParse/wxParse.wxss";
7.2.3 在需要加载html内容的wxml文件中引入wxParse

在这里插入图片描述

7.2.3 在需要加载html内容的页面对应的js文件里引入wxParse并获取数据
var WxParse = require('../../wxParse/wxParse.js');

微信小程序请求数据的方法(wx.request)_第24张图片
补充说明:
在这里插入图片描述

在这里插入图片描述
打印后台获取的数据可以看到图片的路径不完整,需要使用replace替换成完整的路径,所以这里多了一步全局查找并替换的步骤.

你可能感兴趣的:(web)