谈谈前端页面式流程实现的坑及开发建议

在某些业务流程中,需要一步步的引导用户进行每一步操作。这时,假设只是静态页面,那么非常简单。
但在某些情况下,用户的每一步操作都设计到许多交互,这时情况就变得相当复杂。开发者面临的一个问题是:

如何简化页面式流程的逻辑?

之所以说简化,是因为这时,需要考虑的问题非常多,且很难考虑周全,维护性也将是巨大的挑战,这些问题包括:

  • 跨页面传递数据的实现方案是什么?
  • 刷新页面时是否保留数据?
  • 浏览器前进/后退行为,开发者无法控制,如何防止前进/后退产生的bug?
  • 从url进入是否允许访问?
  • 何时清除掉多余数据?
弹窗简化

假设遇到如上困境,在产品允许的情况下,我们可以改用弹窗,逻辑将会大大减少,这是因为:

  • 无需跨页面传递数据
  • 无需考虑浏览器前进、后退、刷新、由url进入的问题

并且采用弹窗时的可复用性更强。

化多路由为单路由

我们可能会直接按照产品原型,设计成多个路由,以实现多页面。但更为推荐的是使用单页面,根据条件渲染对应组件,原因是:

  • 多页面跨页面传递数据麻烦。
  • 浏览器前进、后退、刷新、由url进入等情况处理更为简单。
尽量绕开浏览器行为的控制

我们可能已经采用多路由页面式设计,这可能是我们前期没考虑充分,时间上不允许变更方案。这时,我们的逻辑就会非常复杂。一个原则是,我们尽量绕开浏览器行为的控制,这是因为:

  • 存在兼容性问题。不同平台对某一特性的支持存在很大差异,且很难完全考虑周到。
  • 方案存在缺陷,易出bug。当我们强行去实现,就会发现无论采用哪种方案,或多或少都存在缺陷,难以完善。
  • 更为费时。当我们的注意力被用来与浏览器较真、与兼容性较真,那么费时费精力几乎是必然的。

事实上,我们可以更关注数据,巧妙绕开这些问题,譬如:

  • 通过判断是否有数据,来决定是否允许访问。这就不再需要去控制浏览器刷新、url进入、前进/后退、路由push等行为,转而只需考虑这些情况下的数据。
### 回答1: 面试时可以问的问题包括:1. 你对前端开发有哪些了解?2. 你有使用过哪些前端技术和框架?3. 你有多长时间的开发经验?4. 你有使用过哪些JavaScript库和框架?5. 你有使用过哪些HTML和CSS技术?6. 你有使用过哪些数据库技术?7. 你熟悉哪些版本控制工具?8. 你有处理过性能优化的经验吗?9. 你有自动化测试的经验吗?10.你有处理过项目架构的经验吗? ### 回答2: 在面试过程中,针对拥有3年web前端开发经验的候选人,可以考虑问以下10个问题: 1. 请介绍一下你在过去的3年中主要负责的web前端项目经验。 2. 你在项目中使用过哪些前端开发框架和技术?对于这些框架和技术,你有什么深入的了解和使用经验? 3. 请讲述一次你在项目中遇到的前端技术难题,以及你是如何解决的。 4. 你在前端开发中有进行过性能优化方面的工作吗?介绍一些你曾采取的性能优化策略。 5. 在开发过程中,你是如何与UI设计师和后端开发团队协作的?有没有面临过协作问题,是如何解决的? 6. 对于移动端的适配问题,你有哪些解决方案?请从响应设计、移动端布局等方面进行回答。 7. 你对于前端安全有哪些了解?在开发过程中,如何保障前端代码的安全性? 8. 你有使用过哪些前端调试工具和性能分析工具?请分享一些你喜欢和常用的工具。 9. 针对不同浏览器和不同设备的兼容性问题,你有哪些解决方案和经验? 10. 你在个人学习过程中经常关注哪些前端技术和趋势?请分享一些你认为有前途的前端发展方向。 这些问题将有助于了解候选人在多个方面的能力和经验,包括项目经验、技术广度和深度、协作能力、问题解决能力以及对前端新技术的关注程度。 ### 回答3: 在进行3年web前端开发面试时,可以问以下问题: 1. 请谈谈你在前端开发领域的经验和技能。能够简要介绍你的工作经历和在项目中承担的角色。 2. 请谈谈你对HTML、CSS和JavaScript的理解和掌握程度。例如,你是否熟悉HTML5、CSS3和ES6的新特性,以及它们在开发中的应用。 3. 你是否有跨浏览器开发的经验?请描述一下你在处理浏览器兼容性问题时的做法和解决方案。 4. 请谈谈你对前端性能优化的理解和实践经验。你在项目中采取了哪些措施来提高页面加载速度和响应性能? 5. 请讲解一下你在使用前端框架(如React、Vue等)进行开发时的经验。你在项目中如何利用这些框架来提升开发效率和代码质量? 6. 如果需要在Web应用中使用AJAX技术进行数据交互,你如何实现异步请求和处理服务器响应? 7. 前端开发中常见的安全问题有哪些?请谈谈你对这些安全问题的认识和预防措施。 8. 你在开发过程中使用过哪些调试工具和技术?例如,浏览器开发者工具、网络抓包工具等。 9. 请谈谈你在团队开发中的协作经验。你在项目中如何与设计师、后端开发人员和测试人员进行沟通和合作? 10. 你是否熟悉版本控制工具(如Git)的使用?请描述一下你在项目中使用版本控制的经验和操作流程。 以上问题可以帮助面试者评估候选人的技能水平、项目经验、团队合作能力以及对前端开发的理解和实践能力。同时,这些问题也能够帮助面试者了解候选人在面对具体问题和挑战时的解决思路和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值