当前位置: 首页 > news >正文

第八阶段:uni-app小程序 --首页开发(2)

一:分析页面布局

1.1: 功能

搜索框:

轮播图:

分类的导航区:

楼层区:

二: 利用命令创建home分支

git branch

git checkout -b home

 git branch

三: 配置网络请求(main.js 入口函数)

由于平台的限制,小程序项目中不支持 axios,而且原生的 wx.request() API 功能较为简单,不支持拦截器等全局定制的功能。因此,建议在 uni-app 项目中使用@escook/request-miniprogram 第三方包发起网络数据请求。

1:在每次请求之前展示loading效果(请求拦截器),每次请求完成之后隐藏loading(响应拦截器),就要使用拦截器了

2: option参数是请求时候的相关配置,如果暂时用不到,还是可以声明一下的

3: 原生小程序就用wx. xxx. 

   uni-app小程序就用 uni. xxx

4: 展示loading的时候提供属性 :标题title

5:请求完毕后还要手动关闭loading的效果,在响应拦截器

四:实现轮播图功能

4.1 请求轮播图的数据

实现步骤:

  1. 在 data 中定义轮播图的数组

  2. 在 onLoad 生命周期函数中调用获取轮播图数据的方法

  3. 在 methods 中定义获取轮播图数据的方法

1: 请求获取数据,请求失败就调用uni.showToast ( { title:,duration: 弹框时间  , icon:  图标} ); 请求成功就把数据复制给data中的swpierList

 2: data() { } 存储数据。 onload(){ } 调用方法,获取数据 

      vue中所有的方法都放在methods中,method{} 获取轮播图数据的方法

3: 发送请求前要+根路径,所以在main.js中配置根路径

// 请求的根路径
$http.baseUrl = 'https://www.uinav.com'

4: 请求服务器获取的数据是一个大对象(下图),在对象的data{ } 中 ;{ data : res } 意思是结构出data属性,并重命名为res属性

总结:

1: 在main.js中挂载了请求的根路径

2: 在home.vue中定义一个swiperList[ ] 节点

   onload(){ } 调用方法,获取轮播图的数据

    methods:{} 进行发起请求获取数据。利用uni.$http.get(url) 发起网络请求,返回值是promise,并且用async 和 await 进行网络优化;在判断是否成功,失败就返回提示,成功就复制给swiperList进行存储;

//main.js. 入口函数import Vue from 'vue'
import App from './App'// 导入网络请求的包
import { $http } from '@escook/request-miniprogram'uni.$http = $http// 请求的根路径
$http.baseUrl = 'https://www.uinav.com'// // 请求拦截器
// $http.beforeRequest = function(options) {
//   uni.showLoading({
//     title: '数据加载中...'
//   })
// }// // 响应拦截器
// $http.afterRequest = function() {
//   uni.hideLoading()
// }
// 请求拦截器
$http.beforeRequest = function(option){// 每次请求之前展示loading效果(请求拦截器)uni.showLoading({title:'数据加载中...'})
}// 响应拦截器// 请求完毕后还要手动关闭loading的效果,在响应拦截器
$http.afterRequest = function(){uni.hideLoading()
}
//home.vue<template></template><script>export default{data(){// h1.1:这是轮播图的数据列表swiperList:[]};},onLoad:{//h1.2: 调用方法:获取轮播图的数据this.getSwiperList()},methods:{async getSwiperList(){// h1.3:发起请求,获取数据const {data:res} = await uni.$http.get('/api/public/v1/home/swiperdata')//h1.4:请求失败if(res.meta.status !== 200){return uni.showToast({title:'数据请求失败',duration:1500,// 图标icon:'none'})}// h1.5:请求成功就复制给swiperListthis.swiperList = res.message}}</script><style lang="scss"></style>

十: 解决问题

1: 在开发某个项目的时候,请求接口时,要在小程序里面配置域名 ,并在微信开发者工具里面配置相关请求的域名

相关文章:

  • macOS - 获取硬件设备信息
  • 分布式ID(8):分布式ID生成方法
  • 【测试知识】业务面试问答突击版3---bug、测试用例设计
  • [蓝桥杯 2015 省 B] 生命之树
  • Python和Java哪一个更适合初学者?
  • 比特币,区块链及相关概念简介(二)
  • 数据结构的概念大合集02(线性表)
  • mysql转达梦的python脚本
  • vulhub中GitLab 远程命令执行漏洞复现(CVE-2021-22205)
  • Flink:使用 Faker 和 DataGen 生成测试数据
  • 【STL】stack栈容器与list链表容器
  • 剑指offer力扣题集
  • 芯片与针灸
  • 【微服务】分布式调度框架PowerJob使用详解
  • C语言字符函数和字符串函数详解
  • [Vue CLI 3] 配置解析之 css.extract
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • AngularJS指令开发(1)——参数详解
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • CODING 缺陷管理功能正式开始公测
  • docker-consul
  • express如何解决request entity too large问题
  • github从入门到放弃(1)
  • MySQL的数据类型
  • Next.js之基础概念(二)
  • Nodejs和JavaWeb协助开发
  • PAT A1017 优先队列
  • Redash本地开发环境搭建
  • Redis在Web项目中的应用与实践
  • 翻译--Thinking in React
  • 基于 Babel 的 npm 包最小化设置
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 利用DataURL技术在网页上显示图片
  • 七牛云假注销小指南
  • 前端之Sass/Scss实战笔记
  • 驱动程序原理
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • AI算硅基生命吗,为什么?
  • hi-nginx-1.3.4编译安装
  • RDS-Mysql 物理备份恢复到本地数据库上
  • Spring第一个helloWorld
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • # 达梦数据库知识点
  • #162 (Div. 2)
  • #pragam once 和 #ifndef 预编译头
  • #pragma multi_compile #pragma shader_feature
  • (2)STM32单片机上位机
  • (4)logging(日志模块)
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (待修改)PyG安装步骤
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047