大厂的前端面试——低代码混合

最近参加了一家大厂的前端面试,我向面试官介绍了我开发的低代码平台,并说明这个平台的产出物是完整页面 。但他告诉我,在他们公司的实际使用场景中,低代码的使用方式非常克制------他们并不生成整个页面 ,而是只产出组件

这些组件不会独立运行,而是被嵌入到用手写代码开发的应用中。也就是说,整个页面由两部分组成:

  • 一部分:是工程师手动编写的代码,
  • 另一部分:是低代码平台生成的模块。

面试官问:低代码平台要怎么实现才能支持这样的混合模式?

我的回答是:

低代码平台的改动很小,如果低代码平台生产局部模块,它们可被页面载入,我们需要考虑:怎么将模块与页面关联。

换句话说,一个页面可以有多个模块,当页面被访问时,怎么确定该载入哪些模块?

借这个问题,我想进一步谈谈"低代码混合"的业务场景,以及它背后的实现逻辑。分两种情况:

  1. 低代码与零代码混合
  2. 低代码与手写代码混合

回顾:低代码生产整个页面

在前端开发中,有一个基本的认知------每个页面都对应一个路由。如果低代码生产页面,我们可以很自然的想到,将路由与 ID 绑定,访问路由就能得到页面的 Schema。一旦拿到 Schema,就将其传递给渲染器,由渲染器将该 Schema 所描述的页面动态渲染到界面上。流程图如下:

低代码与零代码混合

要实现低代码与零代码的混合,首先要做的是,将低代码产出的模块接入零代码平台。这种混合模式在数据类平台中尤为常见。

以一个典型的数据分析页面为例:

页面通常包含多个图表模块,这些模块可以由低代码平台生成。最终的页面结构与内容,则由使用者在零代码平台中自由编排------他们根据业务需求选择需要展示的模块,并支持保存页面配置以供日后查看或复用。

在这种模式下,低代码平台产出的每个模块都有一个唯一的 ID。当模块被添加到页面中时,系统会将该模块的 ID 与当前页面进行关联。

为了支持这种混合渲染的能力,我们需要对渲染器进行改造,使其具备两个核心能力:

  1. 根据模块 ID 动态获取对应的 Schema(这是新增能力);
  2. 根据 Schema 渲染出对应的模块内容。

在"低代码与零代码混合"的场景中,低代码模块通常以较固定的布局嵌入到页面中。它们显示的位置是预设的,往往仅占据页面中的一个特定区域,以固定数量的列,自上而下排列。

这种结构下,前端只需维护一个低代码模块的 ID 列表,遍历该列表,并将每个 ID 依次传入改造后的渲染器,便可完成多个低代码模块的注入与渲染。

低代码与手写代码混合

相比于与零代码的混合,低代码与手写代码的混合方式具有更高的灵活性。

这种灵活性体现在:

低代码模块在页面中的位置、尺寸乃至加载时机,都不再固定。开发者可以通过手写代码动态控制模块的布局方式,样式表现,甚至根据上下文决定是否渲染某个模块。

这使得低代码能被灵活的嵌入到复杂页面中,成为整个系统的一部分,而不是一个静态组件集合。

这种场景,渲染器依然具备两个核心能力:

  1. 根据模块 ID 动态获取对应的 Schema(这是新增能力);
  2. 根据 Schema 渲染出对应的模块内容。

与零代码平台的集成方式不同,在这里,渲染器所需的模块 ID 由页面开发者在手写代码中显式传入。这为模块的加载时机、展示位置等提供了更大的灵活性,也要求开发者对模块的使用有更强的掌控能力。

写在后面

我是何遇,感谢你读到这里。愿这篇文章为你打开一个新的视角,看到低代码在不同业务场景中的灵活运用。欢迎关注我,一起继续深入探索低代码的更多可能。

推荐阅读:

  1. 这是一份低代码面试指南
  2. 低代码页面如何优雅接入中心系统:从 Schema 渲染到微前端的演进实践
  3. 在 AI 编程的热潮下对低代码的思考
相关推荐
转转技术团队11 分钟前
多代理混战?用 PAC(Proxy Auto-Config) 优雅切换代理场景
前端·后端·面试
掘金安东尼33 分钟前
蔚来 600 亿研发成本,信还是不信。。
面试·程序员·github
豆苗学前端1 小时前
手把手实现支持百万级数据量、高可用和可扩展性的穿梭框组件
前端·javascript·面试
爱学习的茄子2 小时前
React Hooks驱动的Todo应用:现代函数式组件开发实践与组件化架构深度解析
前端·react.js·面试
3Katrina4 小时前
JS事件机制详解(2)--- 委托机制、事件应用
前端·javascript·面试
DoraBigHead4 小时前
【JS三兄弟谁是谁】搞懂 splice、slice、split,只需一杯奶茶的时间!
前端·javascript·面试
bo521005 小时前
浏览器事件机制详解以及发展史
前端·面试·浏览器
labixiong5 小时前
面试官:从「敲下一个 URL」到「页面出现在屏幕」都经历了什么?
前端·面试
爱学习的茄子5 小时前
深入解析React事件机制:从原生DOM到合成事件的演进
前端·react.js·面试
Danny_FD5 小时前
Vue2 中 `watch` 监听详解与 Vue3 的对比:深入理解监听器的使用与优化
前端·面试