当前位置: 首页 > 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.mrgr.cn/news/63414.html

相关文章:

  • vue3父子组件传值,子组件暴漏方法
  • 算法竞赛——02基本算法
  • Elasticsearch开源仓库404 7万多star一夜清零
  • 一、Go语言快速入门之基础语法
  • 本地PC连接远程服务器jupyter全过程
  • 【Qt】qss 设置通过 addAction 添加的 QToolButton的图标
  • 热点扫描:人工智能专利布局背后的商业博弈
  • Java思想
  • 拒绝无效发稿!软文推广这样精选媒体,一不小心省下百万宣发费用!媒介盒子分享
  • 视频一键转换3D:Autodesk 发布 Video to 3D Scene
  • 【django】django RESTFramework前后端分离框架快速入门
  • dim的方向 傻傻分不清
  • BGP实验--BGP路由汇总
  • 苹果手机备忘录怎么看字数统计
  • WAF+AI结合,雷池社区版的强大防守能力
  • RUM最佳实践:内网IP地址映射地图地理位置场景
  • 周转时间、带权周转时间、平均周转时间、平均带权周转时间
  • uniapp MD5加密
  • [ComfyUI]Flux TTP分块高清放大技术,效果炸裂
  • 江协科技STM32学习- P29 实验- 串口收发HEX数据包/文本数据包
  • vue3官方示例-简单的 markdown 编辑器。
  • 众测一路追到供应链
  • 阿里巴巴独家的SpringCloud Alibaba学习笔记,面面俱到,太全了
  • springboot志愿者在线辅助学习系统-计算机毕业设计源码01048
  • RTPS发布订阅一条消息流程
  • SpringBoot中扩展Druid的过滤器实现完整的SQL打印