解决了项目中几个比较搞心态的bug

news2024/11/17 23:50:37

1、keep-alive

正常keep-alive的使用便可以做项目的缓存,但是我们的项目很不正常
在这里插入图片描述
项目是属于动态缓存,动态缓存有一个弊端
举个栗子:

a组件为设置了需要缓存的页面;
b组件为设置了需要缓存的页面;
c组件为设置了不需要缓存的页面。
假如:从a组件跳转到b组件,相当于缓存页面跳转到缓存页面,两个页面都会进行缓存
假如:从a组件跳转到c组件,相当于缓存页面跳转到无缓存页面,此时会把a组件的缓存给清除掉,即a组件无缓存,c组件也无缓存
假如:从a组件跳转到b组件,两个页面都会产生缓存,再从b页面跳转到c页面,此时会清除a组件和b组件的缓存,相当于三个页面都没有缓存内容,再次进入需要重新创建

结论:缓存页面跳转到非缓存页面,会丢失掉已有的缓存

需求:a页面进行查询,跳转到b页面再回退到a页面,a页面查询参数保留,且b页面不能做缓存

解决方案:2个页面都不使用keep-alive,而是利用vuex,将查询的参数保留,a页面查询后,传递给vuex,由于没有keep-alive缓存,每次进入a页面都相当于创建了一次a页面,在创建的生命周期中添加逻辑,查询vuex是否有对应的查询参数,如果有,直接使用vuex中的参数

解决方案详细说明:
1、a页面和b页面都没有采取keep-alive进行缓存,因为我们的b页面不能设缓存
2、用vuex或者pinia,在查询后进行参数保留到vuex中,在这之后,即使我们跳转到了b页面,vuex中仍记录了a页面的查询参数
3、由于没有keep-alive,每次进入a页面都相当于重新创建a页面,但是vuex没有重新创建(除非我们进行刷新页面),在a页面创建前,读取vuex内的查询参数,如果有,把a页面的查询参数初始化为vuex中的数据即可

2、在点击某些查询按钮后,页面会莫名的刷新

原因:
.com之前是我们项目的基本地址,这里我就不展示了
在这里插入图片描述
可以看到.com后面紧跟了一个‘?’,我把‘?’删除,发现页面不会404,而是重新加载页面,且仍然是该页面
在这里插入图片描述
因此可以得出,是因为多了一个‘?’,导致了点击查询按钮页面会默认刷新

参考博客:博客地址

解决方案:
给按钮添加prevent阻止默认事件即可

3、小程序中消息订阅授权

1、每个手机展示的弹窗不同
例如:苹果手机,会默认勾选,总是保持以上选择,但是我的手机(红魔7),并不会进行默认勾选
苹果手机,不点击同意,无法点击弹窗的允许按钮(表现形式为按钮被禁用),但是我的手机,即使不点击同意,但仍然可以点击弹窗允许按钮

在这里插入图片描述
2、一旦勾选总是保持以上选择,点击小程序右上角三个点,然后点击设置-通知管理,就能看到我们所授权的内容,但是,如果我们没有进行勾选(总是保持以上选择),就在设置中看不到本次的授权内容
用户勾选总是保持以上选择,并且点击拒绝,我们会看到右上角三个点-设置-通知管理中对应的权限为拒绝,且我们日后无法再次唤起授权弹窗,只能引导用户手动去配置(wx.openSetting({withSubscriptions: true}))

在这里插入图片描述
可能说的不是很详细,下面我搞了一个表格

手机是否会默认勾选总是保持以上选择不进行授权是否能继续点击允许按钮
红魔7默认不会可以
苹果系列默认会不可以
小米系列默认会不可以

在这里插入图片描述

是否勾选总是保持以上选择后续进入右上角三个点-设置-通知管理中的体现形式
后续进入都不会弹出该窗口,用户一旦点击拒绝,日后只能引导用户手动配置会出现授权的内容
后续进入仍会弹出该窗口,用户点击拒绝,日后也可以再次弹出不会出现授权的内容,且wx.getSetting也无法获取授权的内容

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

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

相关文章

讲解 @ServletComponentScan注解

目录: 1、用法介绍2、实例讲解 1、介绍 在SpringBoot项目启动器中添加ServletComponentScan注解后,SpringBoot在启动时会扫描并注册所有带有WebServlet(控制器)、WebFilter(过滤器)、WebListener(监听器&a…

自定义字体服务 - 基于Node的Web字体解决方案

自定义字体服务 - 基于Node的Web字体解决方案 背景技术选型font-face介绍实现方案(介绍字体设计、转换、兼容性处理等技术实现细节。)接口实现方式(实现中遇到的问题和解决方案)总结开源地址参考 背景 在前端开发中&#xff0c…

MySQL中LEFT JOIN的用法

原理 LEFT JOIN 关键字返回左表(table1)中的所有记录,以及右表(table2)中的匹配记录(如果有) 注意: LEFT JOIN 关键字返回左表(Customers)中的所有记录&…

家具小程序搭建攻略

要想快速搭建一个家具小程序商城,乔拓云平台是一个非常方便的选择。下面就来详细介绍一下制作的具体步骤。 首先,登录乔拓云平台,进入后台管理页面。在页面上找到【商城】选项,点击【去管理】进入后台管理页面。 在后台管理页面中…

【算法与数据结构】222、LeetCode完全二叉树的节点个数

文章目录 一、题目二、一般遍历解法三、利用完全二叉树性质四、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、一般遍历解法 思路分析:利用层序遍历,然后用num记录节点数量。其他的例如…

lama cleaner

这里写自定义目录标题 安装参数包含的额外plugins 安装 conda create --name lamacleaner python3.10 pip install -r requirements.txt pip install gfpgan pip install realesrgan pip install rembg pip install .如果安装本package报错,可以尝试改&#xff1…

【2023】Nacos下载与安装配置(2.2.3版本示例)

1、Nacos概述 1.1 什么是Nacos Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服…

AndroidStudio Memory profiler(内存分析器)

1.Record Java/Kotlin allocations 查看java 层中对象的调用栈和短时间内创建对象的次数。可用于内存抖动快速分析,可用快速查找到该对象的调用栈(等同于mat) 从上图可见,短时间内创建了23个char[] 数组,其中最大的char[] 占用20k, 查看cll stack 调用…

前端将css.html.js打包到一起打开

过程我是按照下面的执行的,大家可以直接参考这个博客里的过程,下面我记录一下遇到的一些问题,我的电脑是mac 打包教程 1.执行命令npm install electron 在安装Electron时报错command sh -c node install.js 在指令后面添加 --ignore-scripts…

火山引擎DataLeap如何解决SLA治理难题(二):申报签署流程与复盘详解

申报签署流程详解 火山引擎DataLeap SLA保障的前提是先达成SLA协议。在SLA保障平台中,以 申报单签署的形式达成SLA协议。平台核心特点是 优化了SLA达成的流程,先通过 “系统卡点计算”减少待签署任务的数量,再通过 “SLA推荐计算”自动签署部…

No module named ‘_bz2‘

【问题】 mmlab使用custom_imports加载失败,调试到里面去发现import时引发error: ModuleNotFoundError: No module named ‘_bz2’ 【解决】 参考https://stackoverflow.com/questions/50335503/no-module-named-bz2-in-python3靠后的回答。 下载文件…

Vue学习Day2——指令补充

一、指令修饰符 1、什么是指令修饰符&#xff1f; ​ 所谓指令修饰符就是通过“.”指明一些指令后缀 不同的后缀封装了不同的处理操作 —> 简化代码 2、按键修饰符 keyup.enter —>当点击enter键的时候才触发 代码演示&#xff1a; <!DOCTYPE html> <html…

大模型开发(十三):Function calling调用外部工具API,实现实时天气查询

全文共1.2w余字&#xff0c;预计阅读时间约34~50分钟 | 满满干货(附代码案例)&#xff0c;建议收藏&#xff01; 本文目标&#xff1a;完整构建一个借助Function calling功能调用外部工具API的开发流程&#xff0c;实现天气信息的实时查询 本文代码切换使用gpt3.5和gpt4接口&a…

【雕爷学编程】Arduino动手做(88)---水流量传感器模块3

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

低代码开发为什么能长盛不衰?

低代码是一种通过可视化的界面与配置为开发者提供一个快速创建应用软件的开发环境的技术。2018年&#xff0c;西门子收购低代码企业Mendix、美国低代码独角兽企业Outsystems获得1.5亿美元的融资&#xff0c;这两个事件的发生将低代码市场带入资本方的视野&#xff0c;中国低代码…

背包问题(1)------动态规划

你有一个背包&#xff0c;地上一堆物品&#xff0c;挑选一些物品放入背包中&#xff0c;最大能够挑选出来的价值是多少 背包可以装满&#xff0c;背包也是可以不必都装满 一)01背包问题 【模板】01背包_牛客题霸_牛客网 (nowcoder.com) 1)求这个背包最多可以装多大价值的物品&a…

Java编程实现遍历两个MAC地址之间所有MAC的方法

Java编程实现遍历两个MAC地址之间所有MAC的方法 本文实例讲述了java编程实现遍历两个MAC地址之间所有MAC的方法。分享给大家供大http://家参考&#xff0c;具体如下&#xff1a; 在对发放的设备进行后台管理时,很多时候会用到设备MAC这个字段,它可以标识唯一一个设备。然而在数…

【Axure高保真原型】图片放大镜效果

今天和大家分享图片放大镜效果的原型模板&#xff0c;鼠标移入图片区域后&#xff0c;会显示放大的方框&#xff0c;方框会跟随图片移动&#xff0c;右侧会显示方框区域的大图&#xff0c;具体效果可以观看下方视频或者打开预览地址体验。 【原型效果】 【Axure高保真原型】图…

一文详解Spring Bean循环依赖

一、背景 有好几次线上发布老应用时&#xff0c;遭遇代码启动报错&#xff0c;具体错误如下&#xff1a; Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name xxxManageFacadeImpl: Bean with name xxxManageFa…