考官问我做的前端页面是组件切换还是跳转的页面。举个例子,比如一个 类似淘宝“个人中心” 页面上,可以选择不同的订单状态的tab,点击就会进入订单列表页面,这样的页面是直接用一个页面然后切换状态显示还是直接两个不同的页面呢?
我回答是两个页面,因为我觉得两个页面的内容都不一样,也符合跳转的逻辑。但是面试官明显的失望了,所以我后来琢磨是不是写成一个页面然后切换状态体验比较好,而且不用传递订单的状态参数过去呢?具体有什么原因呢?我想起来京东也是做成切换的,他的商品分类页面的搜索框,点击搜索框会切换到搜索页面,实际上是一个页面在切换状态显示不同的内容,这么做的意义是什么呢
如果说做成一个页面切换显示,那么就是单纯的v-if切换吗(我使用的是vue)
单独从京东的搜索界面来说。
大部分情况下搜索界面的内容不是很复杂,基本就是一个input,一些搜索记录和热搜的 item ,为页面加载不会带来太大的鸭梨,而且,一般搜索记录是本地存储,可以优先读入,提升用户体验,搜索记录是 ajax 后端读取,即使预读也不会有太多的鸭梨,这些都是可以用 Redis 做到缓冲,而且 搜索相对于用户体验体验来说,也应该是点击就能出现的,所以做成一个
图层
我觉得没什么问题,是一个比较好的设计。即使在 wap 2.0 时代,搜索只是嵌入在页面亦是如此,点击即可输入进行操作。至于题干中的 个人中心 > 订单列表,无论从项目设计还是实践来说,都应该采用分页面的方式,当然现在的单页用了 router 后,只要后端不拖后腿(你可以提前预读),页面载入也是很快的,对用户体验基本造成不了太大的影响,但是如果这两个页面混合在一起,那么对于相对来说,页面层级混乱,不容易管理。
如果单从开发来说,如果你对组件分割能够游刃有余,那也不是问题,直接做进去也是完全可以的,但是违背开发原则。
从面试的角度来讲,或许对方更想考察你对不同业务环境下该采用什么样的方式方法来处理问题是关键的,其次,因为这些不成定性的东西,大家基本都是按照自己第一感去处理,如果你能说服他,或者达成某些共识,在一定程度上还可以为自己加分。