记录一下uniapp开发中遇到的一些问题

news2024/11/28 4:32:41

概述

最近码代码的时候遇到一些问题,这里自己记录总结一下,供大家参考,说得不对的地方希望大家指出

大概介绍一下我用到的内容

  1. 用HbuilderX新建一个uni-app项目 ,vue版本选的2,爬坑轻松一点
  2. 移动端ui框架选了uView(全量引入),打包的时候没用到的不会打包(可以查看 sourcemap),vant Weapp在微信小程序上面表现不佳,不推荐
  3. css预处理语言scss,比较接近css写法,小程序样式隔离比较严格,css代码使用样式穿透::v-deep .u-button(框架组件的类名)
  4. 图标都采用ali-icon加载,代码包可以做一下分包,主包最大2M,最大20M

以下是遇到的问题

1、开发环境代理配置无效

代理配置:

在这里插入图片描述

H5中代理有效:

在这里插入图片描述

微信小程序中异常:

在这里插入图片描述

解决办法:后端配置允许跨域,把服务地址直接指定到自己封装的request.js文件中,api.js中的接口配置要把/api前缀去掉,不然404。这里要对uni.request进行封装,使用axios封装在小程序中会报一个不支持使用XMLHttpRequest的错误。

配置方式:
在这里插入图片描述
请求结果:
在这里插入图片描述

2、scroll-view封装左侧导航,也可以自定义监听oncsrcll事件拿到scrollTop,微信不支持ref

首次渲染时需要计算右侧列表元素的高度(包括类别的高度),uniapp提供了操作dom的方法

页面结构:
在这里插入图片描述

//这样的方式存在一些问题,加载的列表不能为空,而且首次加载的数据可能会庞大。后面改造成单次只加载一个门类,做分页上拉加载
//uniapp提供了操作dom的api(微信小程序/H5均支持)
this.$nextTick(()=>{
				this.query = uni.createSelectorQuery().in(this);
				this.query.select('.scroll-con .cata-name').boundingClientRect();
				this.query.select('.scroll-con .item').boundingClientRect().exec((data)=>{
					this.headHeihgt=data[0].height;
					this.contentHeight=data[1].height;
					this.listcata.forEach((item,index)=>{
						if(index==0){
							this.areaList.push({
								startY:0,
								endY:this.headHeihgt+this.contentHeight*item.list.length
							})
						}else{
						//这里计算每个滚动区间,与左侧联动
							this.areaList.push({
								startY:this.areaList[index-1].endY,
								endY:this.areaList[index-1].endY+this.headHeihgt+this.contentHeight*item.list.length
							})
						}
						this.areaList.push();
						this.orderList.push(item.list.length);
					})
				});
				
				})

实现效果,左侧点击和右侧滚动联动(双向)

在这里插入图片描述

3、自定义组件的使用,不要在子组件修改父组件的值(子组件改数据,在H5中能渲染,但是有逻辑问题,不推荐),通过子组件emit事件在父组件中修改数据,对于通过v-for遍历要传递给子组件的值如果使用v-model语法糖写法,数据需要写成arr[index]的形式,选中的商品存入Vuex,不会丢失响应式,其它页面数据变更,分类列表中的数据也会收到通知

在这里插入图片描述
在这里插入图片描述

4、错位瀑布流布局,基于grid布局的gridRow属性实现,没有强迫症完全没必要做这样的布局,就像底部的TabBar一样

在这里插入图片描述

//这段代码用于计算每个元素的位置,错位布局的重点感觉在于数据的筛选,否则没有足够的内容填充容器
gridLayout(){
				this.gridInfo=[];
				let  flag=true;
				//可以调整左右的高度,当前数据会表现成一个回字结构
				let arr=[3,4];
				for(let i=0;i<this.prefGoods.length;i++){
					if(flag){
						this.gridInfo.push({
							startRow:this.gridInfo[i-2]?this.gridInfo[i-2].endRow:1,
							endRow:this.gridInfo[i-2]?this.gridInfo[i-2].endRow+arr[0]:4,
							offset:arr[0],
							className:arr[0]>arr[1]?'largeSty':'normalSty'
						})
					}else{
						this.gridInfo.push({
							startRow:this.gridInfo[i-2]?this.gridInfo[i-2].endRow:1,
							endRow:this.gridInfo[i-2]?this.gridInfo[i-2].endRow+arr[1]:5,
							offSet:arr[1],
							className:arr[1]>arr[0]?'largeSty':'normalSty'
						})
					
					}
					if((i+1)%2==0){
						//反转数组,切换左右的高度变化
						arr.reverse();
					}
						
						flag=!flag;
				}

效果:

在这里插入图片描述

PC端准备用Vue3写,后面有问题也接在这里

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/769529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C 知识积累 回车与换行 Linux C 语法分析

目录 回车与换行一.知其然二.知其所以然 关键字&#xff0c;操作符和函数区别1&#xff1a;关键字2&#xff1a;操作符3&#xff1a;函数 命令行参数argv原码补码补码加法 Linux C 语法分析结构体指针类型函数宏定义其他 const语法整理 回车与换行 一.知其然 \n是换行&#x…

智能电表远程抄表系统原理

智能电表远程抄表系统是现代智能电网建设的重要组成部分&#xff0c;它利用物联网技术实现电表数据的远程采集、传输和处理&#xff0c;提高了电力公司的抄表效率&#xff0c;同时也为用户提供了更加便捷、准确的用电服务。本文将从远程智能电表抄表系统的工作原理、特点、应用…

KDE项目近日发布了KDE Frameworks 5.108

导读KDE项目近日发布了KDE Frameworks 5.108&#xff0c;作为这个开源软件套件的最新版本&#xff0c;它由80多个Qt附加库组成&#xff0c;为KDE Plasma桌面环境和KDE应用程序提供常用功能。 KDE Frameworks 5.108在这里修复了Plasma桌面崩溃的问题&#xff0c;该问题发生在用中…

Openlayers layer 基础及重点内容讲解

图层就像是含有文字或图形等元素的图片,一张张按顺序叠放在一起,组合起来形成页面的最终效果。 在 openlayers 中,图层是使用 layer 对象表示的,主要有 WebGLPoints Layer、热度图(HeatMap Layer)、图片图层(Image Layer)、切片图层(Tile Layer)和 矢量图层(Vector Layer…

ShardingSphere分库分表实战之水平分表

&#x1f680; ShardingSphere &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&…

科东软件入选“四化”赋能重点平台

科东软件Intewell工业嵌入式实时操作系统成功入选广州市“四化”赋能重点平台名单 2023年7月14日&#xff0c;广州市工业和信息化局公布广州市“四化”赋能重点平台名单&#xff08;第二批&#xff09;&#xff0c;科东软件凭借国产化技术创新优势、成熟的数字化转型方案&#…

与 AI 数智助理 Kyligence Copilot 携手,共同挖掘数据的无限潜能

Kyligence 用户大会近日在上海顺利召开&#xff0c;会上 Kyligence 重磅发布了 AI 数智助理 Kyligence Copilot&#xff08;预览版&#xff09;。生成式 AI&#xff08;Generative AI&#xff09;正带来人机交互方式的革命&#xff0c;并将改变人类使用数据的习惯&#xff0c;K…

MyBatis学习笔记——1

MyBatis学习笔记——1 一、MyBatis概述1.1、框架1.2、三层架构1.4、了解MyBatis1.4、ORM思想 二、MyBatis入门程序2.1、Mybatis程序的编写2.2、MyBatis入门程序的一些小细节2.3、MyBatis事务管理机制深度解析2.4、在开发中junit是如何使用的2.5、Mybatis集成日志框架logback 三…

3.9 Bootstrap 分页

文章目录 Bootstrap 分页分页&#xff08;Pagination&#xff09;默认的分页分页的状态分页的大小 翻页&#xff08;Pager&#xff09;默认的翻页对齐的链接翻页的状态 分页 Bootstrap 分页 本章将讲解 Bootstrap 支持的分页特性。分页&#xff08;Pagination&#xff09;&…

PADS VX2.5学习

1、关于库的定义 PADS中的元件库分为四个文件 &#xff1a;*.ld9 *.ln9 *.pd9 *.pt9 即CAE、 LINES、PCB DECAL、PART TYPE。只有这四个文件都存在才是一个完整的库&#xff0c;才可以加载。 我们设计的电路所用到的元件必须在PADS logic和PADS layout中都存在&#xff0c;…

【正点原子STM32连载】第六十五章 UCOSII实验3-消息队列、信号量集和软件定时器摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第六…

【Linux系统编程】Linux调试器——gdb 的基本使用

文章目录 1. 准备工作及知识补充1.1 源文件和Makefile1.2 安装gdb并解决没有调式信息的问题debug和release的了解如何解决 2. gdb的基本使用2.1 显示代码2.2 设置、删除和查看断点2.3 禁用和启用断点2.4 逐语句和逐过程调式2.5 查看函数调用堆栈2.6 查看指定变量的值2.7 跳至指…

STM32学习笔记(十二)丨RTC实时时钟

本篇文章包含的内容 一、计算机底层计时系统——时间戳1.1 时间戳简介1.2 GMT/UTC1.3 C语言和time.h库 二、STM32的BKP和RTC时钟2.1 BKP&#xff08;Backup Registers&#xff09;备份寄存器2.2 RTC&#xff08;Real Time Clock&#xff09;实时时钟2.2.1 RTC简介2.2.2 RTC的内…

行业追踪,2023-07-18,减速器,汽车零部件是重点关注板块,随时开启

自动复盘 2023-07-18 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

PB从入坑到放弃(五)窗口使用技巧

PB从入坑到放弃&#xff08;五&#xff09;窗口使用技巧 一、窗口类型二、窗口属性2.1 General 属性页属性2.2 Scroll 属性页属性2.3 ToolBar 属性页属性2.4 Other 属性页中的属性 三、11种常用控件四、窗口事件4.1 常用事件4.2 举个栗子 五、窗口常用函数5.1 open 函数5.2 clo…

【力扣每日一题】2023.7.19 模拟行走机器人

题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 机器人模拟类题目,力扣里有很多这样的模拟题,就是模拟机器人在坐标系上行走. 套路就是记下每个方向行走后,x轴和y轴的变化&#xff08;代码中的direction&#xff09;,例如 direction[0] 就表示向北走一次,y轴1,x轴不变.…

防静电门禁闸机的设计和功能

防静电门禁闸机是一种用于控制人员出入的设备&#xff0c;主要用于对人员进行身份验证和进出控制。它的主要功能是防止静电干扰和未经授权的人员进入特定区域。 防静电门禁闸机一般包括以下几个方面的设计和功能&#xff1a; 1. 门禁系统&#xff1a;防静电门禁闸机通常集成了…

宝塔面板登陆不上去了,一直显示加载

宝塔面板登陆不上去了&#xff0c;一直显示加载 半天了登不上去&#xff0c;不知道这是怎么回事? 解答&#xff1a; 您好&#xff0c;服务器内执行bt 16命令先修复&#xff0c;然后重新访问看下。

安卓APK反编译+修改+重打包+签名

目录 1.下载反编译工具包。2.将APK包&#xff0c;重命名为ZIP&#xff0c;解压。放到反编译根目录下。3.使用apktool反编译修改smail文件&#xff0c;进行重打包4.重新打包5.重签名 1.下载反编译工具包。 反编译工具包地址&#xff1a;百度网盘 提取码&#xff1a;dsu3 解压后…

汽配企业专用的MES管理系统与普通系统相比有哪些特征

随着全球化的加速和市场竞争的日益激烈&#xff0c;汽配企业对于生产管理的要求越来越高。为了满足这种需求&#xff0c;越来越多的汽配企业开始引入MES管理系统解决方案来管理和优化其生产线。与传统的普通系统相比&#xff0c;汽配企业MES管理系统具有以下几个显著的特征&…