代码拉取完成,页面将自动刷新
别人问你: 有没有封装过一些组件? (结合自己的业务说)
https://www.axureshop.com/ys/479129
https://www.axureshop.com/a/479129.html 原型图
我之前的项目是一个vue2写的招聘平台的项目,比较小众,疫情期间使用的,结束以后,这个项目因为一些原因就下线。
我们这个项目类似与拉钩,boss等招聘,但主要针对的人群是蓝领人群,因为很少有平台专门针对这些用户做过类似的产品,
里面有一个业务我印象比较深刻,就是在写一个 找工作模块的时候, 里面关于 工作经验,行业,薪资, 学历要求,公司规模等等,还有些记不住了, 这些下拉框有个共同特点。 就是他们的数据都是后端返回给前端的,都是动态数据,不能写死。之前没有封装思维的时候,就在一个页面里面,从头写到尾。然后后期维护这个项目的同事,也在不断的写这个页面,导致这个页面最后都有1千多行, 所以后面就萌生了 优化这个页面的想法。
最简单的就是 将所有的 下拉框封装起来,作为一个组件,因为页面上这些下拉框的UI都长得一模一样,只是数据不同,结合vue的数据驱动视图,封装一个组件,ui不动。只需要我们在组件内部,针对不同的选项的类型,传递一些参数,然后在二次封装的element-ui的插件里面 根据不同的 type类型去 发请求。这样一来,我们的首页 就会精简接近200行代码。
封装的组件,主要接受的有几个属性,监听几个事件。 属性就是 type从1到5, 父组件给子组件传递一个对象属性名称是value,里面有 工作经验,行业,薪资,学历要求,公司规模等等
监听的事件就是一个input事件,然后就可以通过v-model来简写
已进入这个页面,所有的请求是并发的,涉及到promise的 all方法 (promise上面有很多方法 all any race allSettle。 Promise.all([qingq1, qingq2, qingq3, ....])
还有里面有一些难点: 行业和薪资的下拉框请求 依赖于 工作经验的数据的优先选择。
因为是同一个组件,那么还需要在组件里面 监听 工作经验的数据, 例如 wathc: 'obj.a':(){}
如果这个有值了,就在并行发起获取行业和薪资的请求
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。