前端项目推荐-低代码demo

从可拖拽组件的设计开始讲起,我们需要设计组件的结构,每个组件都有一个JSON格式的数据结构来描述其基本信息,包括唯一标识、名称、属性和子组件。
通过React.createElement()递归地将JSON信息渲染成组件树。这个方法的参数包括组件名称、属性对象和子组件。
组件的属性存储在各自的配置文件中,每个物料的index.ts文件中定义了组件的setter、事件和方法,以便在渲染时传递给createReactElement。
组件通信通过事件处理来实现:通过JSON结构来定义事件,当组件被选中时,可以选择触发其方法。使用Map来存储组件ID与实例的映射,以便在需要时进行方法调用。
使用useImperativeHandle暴露组件的方法,通过ref可以在父组件中调用这些方法。
组件选中与高亮,定义选中机制,在渲染时为每个组件添加一个唯一的key,通过事件监听获取被点击组件的ID,更新当前选中组件的状态。利用获取的组件ID,通过DOM操作来高亮被选中的组件。
在组件被选中后,配置栏会动态渲染与该组件相关的表单,用户可以通过表单更新组件的属性。
每个事件使用JSON存储,包括类型和配置。在预览模式下,将这些JSON格式的事件转换为可执行的函数。
技术点1:撤销与重做

针对面试可以分别准备两板,首先是全量的保存,后续你优化为快照管理:采用改进的快照机制,仅记录变更的组件ID和实例,而不是完整的组件树,避免冗余数据的产生。
组件拖拽的拖拽实现:
通过react-dnd等库实现组件的拖拽和放置,支持嵌套结构的拖放。也可以用原生dragapi去做
关于编辑与预览模式
模式切换:根据不同的模式(编辑/预览)使用不同的渲染器,分别控制事件触发和属性展示的行为。可以用本地存储去存预览的数据
#编程# #前端# #前端入门# #前端项目# #前端面试#
全部评论
点赞 回复 分享
发布于 2025-07-02 02:10 北京
在大厂低代码做后台管理还需要继续待吗,感觉提升不了
点赞 回复 分享
发布于 2025-02-12 09:40 北京
这个不会是神光的项目吧,我这几天就在写这个项目
点赞 回复 分享
发布于 2024-11-29 18:09 江西

相关推荐

一、JS 基础(必问)1. 变量提升、作用域、闭包原理与场景2. this 指向规则(普通函数/箭头函数/构造函数/绑定)3. 原型与原型链、继承实现4. 异步:Promise、async/await、宏任务微任务5. 防抖节流原理、手写与应用二、浏览器 & 网络(高频)1. 从输入 URL 到页面展示全过程2. 浏览器渲染流程、重排重绘优化3. HTTP/HTTPS、HTTP2、HTTPS 握手流程4. 缓存策略:强缓存 / 协商缓存5. 跨域原因与解决方案三、Vue / React(二选一必深问)Vue1. 响应式原理(数据劫持 + 发布订阅)2. 虚拟 DOM、diff 算法3. computed / watch 区别4. 生命周期执行顺序5. Vue3 组合式 API 优势React1. Hooks 规则、useState/useEffect 原理2. 类组件 vs 函数组件3. Fiber 架构、调和流程4. 状态提升、Context、Redux 流程四、工程化 & 性能优化(大厂最爱)1. Webpack 构建流程、loader/plugin 区别2. 常见优化:代码分割、tree shaking、懒加载3. 前端性能指标:LCP、FCP、FP 等4. 首屏优化方案5. 移动端适配、兼容性处理五、手写代码(高频现场题)1. 手写 Promise2. 手写防抖 / 节流3. 手写深拷贝4. 手写 call/apply/bind5. 数组去重、flat 扁平化六、场景题 & 逻辑题1. 如何定位线上卡顿/白屏问题2. 大量列表渲染优化(虚拟列表)3. 如何设计一个弹窗组件4. 前端监控与错误捕获
面试问题记录
点赞 评论 收藏
分享
评论
6
27
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务