逻辑思维篇
开发新功能,需要修复线上bug
- git stash 加上使用 webstorm git功能 代码片段保存
- git checkout dev
- git checkout -b fix-问题 & git commit
- git checkout dev & git merge fix-问题
- git push 触发 CI 测试
- 代码合并
- git checkout master + git merge dev
- pull request
- 功能稳定后可以考虑删除 fix 分支
- git checkout 原本开发的分支
- git stash pop
进入详情页,返回页面重新刷新了,如何解决
Vue
直接使用 keep-alive 组件。在 router 配置 meta 字段,添加 keepAlive = true。在 beforeRouteLevae 钩子记录滚动条位置,在 beforeRouteEnter 设置滚动条位置。
React
方法1:
使用 react-router-cache-route 库实现。
方法2:
- 保存页面数据和滚动条位置到 useRef 中,如果有则直接获取。
- 有需要可以判断如果首页,则清空缓存。防止获取淘汰数据。
SPA页面白屏解决方案
方法1:
使用 prerender-spa-plugin 预渲染插件,编译时把静态内容提前放到 app 中。
方法2:
使用骨架屏 age-skeleton-webpack-plugin 插件,原理是通过 Puppeteer 获取数据后,通过算法替换成一些占位图。
方法3:
直接使用 ssr 服务端渲染
在vue项目开发中,如果有多个子项目想共用一套 js 库或者是多个子项目 想集成到一个vue项目里面,如何实现比较合理
前者抽成 npm 包比较合适, 或者模块联邦提前公共逻辑.
后者要保留其他项目不做调整, 使用微前端.
解决请求嵌套
直接 async/await
自己写个node中间层,整合数据
防止别人开发模式调试
方法1:
死循环 debugger
方法2:
禁用右键
方法3:
禁用快捷键
如果浏览器内核过低, 如何兼容语法
通过 core-js 可以注入原型的方式, 兼容当前浏览器未实现的方法