【踩坑记】2024年上半年开发踩坑实录!

现象:Vue项目中个别页面渲染非常缓慢,而其他页面渲染正常

原因:该页面在watch中调用了递归函数。问题代码如下

js 复制代码
watch: {
  customTreeList: {
     handler(newVal){
       const treeData = newVal;
       this.circleUserTree(treeData);
       this.deptTreeList = treeData;
     },
     deep: true,
   }
}

解决:在watch里禁用了递归函数后,页面渲染正常了。

另外,笔者使用以下写法也会造成页面性能问题甚至死循环,即:

html中v-if="getSpeShow()" + watch中调用getSpeShow()

最终笔者在v-if中使用变量而非直接使用getSpeShow()才解决问题。

现象:开发的系统链接在企业微信聊天框中不能显示缩略图

解决:在网站网页 html代码中的之后增加需要的缩略图图片。

js 复制代码
 <body>
    <div style="visibility:hidden;height:0;width:0;">
      <img src="/image/logo-300.jpeg" style="width: 300px; height: 300px;"/>         </div>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
 </body>

注意事项:

1、这个图片尺寸不能太小,在300*300以上就可以了。

2、图片放到body之后,微信应该会默认取页面中第一张图片

3、用JPG图片,如果格式是png的,微信朋友圈可能会直接把他忽略了。

4、width和height都设为0,style不能设置为display:none,可设置为visibility:hidden。

5、图片地址应为绝对路径。

现象:Vue中使用window.onresize无效

原因:父子组件里均使用了window.onresize,导致后面将之前的所覆盖。

解决:使用window.addEventListener() 即可,代码如下:

js 复制代码
mounted:{
   // 绑定resize
  window.addEventListener('resize', ()=>{
  })
},
destoryed:{
   // 解绑resize
   window.removeEventListener('resize', ()=>{     
   })
}

现象:el-select组件下拉框跟随页面滚动

原因:el-select组件的popper-append-to-body属性值默认为true

解决:将popper-append-to-body属性设置为false可以让下拉框不跟随页面滚动。但是如果el-select组件在el-dialog中使用,则单独使用popper-append-to-body属性设置无效,需结合css样式使用:

js 复制代码
<el-select class="common-select" :popper-append-to-body="false"></el-select>

.common-select {
  .el-select-dropdown {
    position: absolute !important;
    top: 32px !important;//选择框的高度
  }
}
复制代码
相关推荐
念风零壹4 小时前
AI 时代的前端技术:从系统编程到 JavaScript/TypeScript
前端·ai
光影少年5 小时前
react的hooks防抖和节流是怎样做的
前端·javascript·react.js
小毛驴8505 小时前
Vue 路由示例
前端·javascript·vue.js
发现一只大呆瓜5 小时前
AI流式交互:SSE与WebSocket技术选型
前端·javascript·面试
m0_719084116 小时前
React笔记张天禹
前端·笔记·react.js
Ziky学习记录7 小时前
从零到实战:React Router 学习与总结
前端·学习·react.js
wuhen_n7 小时前
JavaScript链表与双向链表实现:理解数组与链表的差异
前端·javascript
wuhen_n7 小时前
JavaScript数据结构深度解析:栈、队列与树的实现与应用
前端·javascript
狗哥哥7 小时前
微前端路由设计方案 & 子应用管理保活
前端·架构
TT哇7 小时前
【实习 】银行经理端两个核心功能的开发与修复(银行经理绑定逻辑修复和线下领取扫码功能开发)
java·vue.js