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

【前端】项目中遇到的问题汇总(长期更新)

一、联调交互类

1、出现一个数据在当前页面进行了修改,另外一个页面的同一数据并未同步更改

当前的数据经过调用接口修改更新以后,if(code == 200) 将当前数据存入store.dispatch, 然后另一个地方获取该数据,直接获取存入的数据,这样就可以同步显示了

let XXX=computed(() => { return store.getters.***}        //直接XXX.数据拿到就是同步的

2、给菜单项加权限,不显示管理员独有的菜单项

利用filter来传,但是不能直接在菜单的数组使用,这样会出现管理员打开页面没有该菜单项,需要二次刷新页面才出现,后也尝试在onMounted里写,结果仍需要二次刷新才出现

最后的解决方法1:

//template里传MenuList
let managerMenu= computed(() => {return store.getters.managerMenu;
});//过滤掉管理员的菜单项,if里的条件看接口怎么定义、怎么存数据的
const menu = [{……}];
const menuList = computed(() => {if(managerMenu.value.length == 0) {return menu.fliter((item) => {return item.path != "XXX";});}else return menu
});

方法2:

//menu里不放管理员的菜单项
const menu = [{……}];const menuList = computed(() => {if(managerMenu.value?.length > 0) {return [...menu, ...[{menuName: XXX, menPath:XXX,……}] ];}else return menu
});

3、路由跳转到某个页面,并显示某个标签

// 1、先设置对应的路由进行跳转
router.push("/" + item?.menuPath);// 2、跳转点击的菜单项XXX
if(item.menuName == XXX) {store.dispatch("app/menu", "***");
}//push是跳转当前页面,resolve+window.open则是跳转新页面//push支持query和params,resolve只支持query,若没用query传参,也可以用localStorage
const routePath = router.resolve({path:XXX, query:XXX,});
window.open(routePath.href, "_blank");
localStorage.setItem('a', 1);

4、为简化代码,调多个接口可用三目运算符写入一个函数

const xxParams = ref({……})
const getList = async () => {
const { code, data} = await API.XXX[xxId ? "methodAPI1" : "methodAPI2"](xxParams.value);
if(code == 200) {……}

5、使用ElementUI的无线滚动加载 v-infinite-scroll,出现一直可以滚动的情况

默认情况下,infinite-scroll-disabled是false

方法1:可以在v-infinite-scroll="loadMore"的loadMore方法中限制达到列表长度就return;

方法2:

// 标签里写infinite-scroll-disabled="disabled"
<p v-if="loading">加载中...</p>
<p v-if="noMore">没有更多了</p>const loading= ref(false)
const loadMore = () => {loading.value = true; ……}
const noMore= computed(() => return list.length >=20)    //eg:表长度限制
const disabled = computed(() => return loading || noMore

 

二、CSS样式类

1、兄弟div盒子实现并排

1、设置其父容器盒子的样式为 display: flex; (常用)

2、两个盒子都用float:left,再用定位调整。(脱离文档流)

2、多个兄弟盒子设置样式简单方式

如果使用v-for遍历,可以利用index和个数n,用三目运算符来写样式:

        :style="marginRight: (index+1) % n == 0 ? '0' : '5px' "

3、用el-input写登录输入框出现下边框消失

方法1:

        先看样式里面有没有设置相关样式,比如我遇到的问题就是设置了.el-input__wrapper的padding,这个时候按照浏览器的像素,eg:Edge1440宽来调整padding就可以调好。

方法2:

.el-input__wrapper {@media screen and (max-width: 1440px) {padding:***;}
}

http://www.lryc.cn/news/474858.html

相关文章:

  • DAY73WEB 攻防-支付逻辑篇篡改属性值并发签约越权盗用算法溢出替换对冲
  • 2024 Rust现代实用教程:Ownership与结构体、枚举
  • MMed-RAG:专为医学视觉语言模型设计的多功能多模态系统
  • 数据采集(全量采集和增量采集)
  • GPT-Sovits-1-数据处理
  • web前端多媒体标签设置(图片,视频,音频)以及图片热区(usemap)的设置
  • 尚硅谷react教程_扩展_stateHook
  • 专线物流公共服务平台:数据驱动,标准引领,共创金融双赢新时代
  • 界面控件DevExpress JS ASP.NET Core v24.1亮点 - 支持Angular 18
  • Spring之依赖注入(DI)和控制反转(IoC)——配置文件、纯注解
  • 基于SpringBoot的宠物健康咨询系统的设计与实现
  • Lucene的使用方法与Luke工具(2)
  • 【客户端开发】electron 中无法使用 js-cookie 的问题
  • kafka客户端消费者吞吐量优化
  • 电子工程师-高质量工具包
  • 简单认识redis - 12 redis锁
  • 基于springboot+vue车辆充电桩管理系统
  • shodan用法(完)
  • 【若依框架】代码生成详细教程,15分钟搭建Springboot+Vue3前后端分离项目,基于Mysql8数据库和Redis5,管理后台前端基于Vue3和Element Plus,开发小程序数据后台
  • 转子侧串级调速系统和双馈调速系统
  • AI学习指南自然语言处理篇-Transformer模型的实践
  • 【LVGL速成】LVGL修改标签文本(GUI Guider生成的字库问题)
  • C语言项目实践-贪吃蛇
  • 在kanzi 3.9.8里使用API创建自定义材质
  • IDEA中通义灵码的使用技巧
  • JS中let var 和const区别
  • ansible详细介绍和具体步骤
  • 利用LangChain与LLM打造个性化私有文档搜索系统
  • linux中的软、硬链接
  • Ubuntu 系统、Docker配置、Docker的常用软件配置(下)