当前位置: 首页 > 后端技术 > Node.js

Vue全栈技术重构字节跳动招聘网站总结(上)

时间:2023-04-03 18:29:18 Node.js

.pagination-list{display:flex;}.pagination-item{margin-right:4px;游标:指针;填充:8px;&:hover{颜色:@main-color;}&.current{颜色:@main-颜色;}}初衷现在社区里基于Vue的项目非常多。为了提高自己对Vue的进一步了解,一直在寻找界面好看,功能齐全的。项目练手。我在逛各大招聘网站的时候,发现字节跳动的官方招聘网站非常适合练习。当我发现这个网站是用react实现的时候,我就想,能不能用vue的技术栈来完全重构呢?数据从哪里来?一个完整的线上项目离不开完整的数据,那么如何才能得到自己要做的项目的真实数据呢?于是默默打开原网站的开发者工具,在网络面板找到了浏览器请求的官方API接口。一旦找到API接口,就可以放心阅读了。问题是像字节跳动这样的公司肯定会限制跨域访问服务端API请求。即使某个接口可以成功请求数据,长期作为自己项目访问的接口使用也是不稳定的。于是想到了接口代理的实现方案。实现的大体思路是使用express自己搭建一个服务器,包括项目上线后静态资源的托管。服务端接口代理小技巧对于在浏览器端抓取的API数据接口,单纯分析其地址和各种参数无疑是非常麻烦的。有没有办法一键复用?怎么样?答案是肯定的!由于节点端没有原生的fetch请求方法,所以这里需要一个第三方节点模块node-fetch。这是一个浏览器端原生的fetchrequest模块,可以直接用npm安装。有了它,我们就可以在浏览器的网络面板中使用界面一键复制功能了。具体操作请看下面的demo。详细API代码案例,请点击这里。此功能仅在高版本的chrome浏览器中可用。如果你的浏览器没有这个复制选项。请升级到最新的浏览器并使用项目技术架构。为了进一步提高自己的技术水平,更好的加深对Vue的理解,我选择零代码开发所有页面功能(没有使用任何3rd方UI库)。项目前端技术栈vue主框架vue-router路由跳转的官方插件lodash一个javascript函数工具库axios负责HTTP请求的插件服务端技术栈express构建web服务器的nod??ejs框架node-fetch类似在浏览器端获取请求polyfillconnect-history-api-fallback解决了单页应用以history方式访问服务器时出现404的问题。中间件项目开发工具vue-cli快速搭建Vue项目官方脚手架Lesscss预处理器vscode轻量级代码编辑器postmanAPI接口测试调试工具vue-devtoolsVue项目官方调试工具chrome应用运行/调试环境git开源版本控制系统部署环境阿里云服务器在线地址http://123.57.204.48:3000git远程仓库地址git@github。com:konglingwen94/vue-bytedanceJob.gitgithub代码托管仓库https://github.com/konglingwen94/vue-bytedanceJob项目源码目录项目重要功能分析pager组件components/pagination.vue查看源码点这里我正在开发这个页面在组件之前,我也提到了多个网站的分页功能。各种分页功能各不相同。经过挑选,我终于确定了我认可的那个。该组件实现的功能如下图所示。从上图中我们可以看出这是一个功能完整的pager组件。基本代码这里就不介绍了。具体实现请点击这里。下面主要分析一下开发过程中遇到的困难!当鼠标点击分页的数字键时,整个分页条会随之动态切换。当总页数超过一定值,或页面切换到一定范围时,会出现相应的省略号,而不是隐藏页码显示。这个功能逻辑应该如何实现?好的想法是编写优雅代码的第一步。我把分页的可能状态分为四种情况。当最小页数后面出现省略号时,分页器的总页数小于默认显示的页数(分页栏中没有省略号)。根据上面列出的情况,可以使用代码来实现。这里我使用Vue的一个计算属性visiblePagers动态显示出现的所有页码。该组件的完整代码如下