智能开发平台-组件开发

简介: JOKER平台支持在线组件开发,无需编译即可实时渲染。组件包含状态数据、生命周期、方法逻辑、事件处理与布局设计,通过可视化拖拽与响应式机制,提升开发效率与复用性。

组件开发

在前端项目开发中,组件开发占据着举足轻重的地位。通过组件封装,能够将公共业务或 UI 交互进行统一整合,有效避免重复开发,极大地提高开发效率。

JOKER 开发平台展现出卓越的优势,它支持在线进行组件开发,且开发完成的组件无需经过编译,即可在平台内直接引用并渲染。这得益于 JOKER 开发平台自主研发的渲染与沙箱机制,实现了框架层面的高度灵活性。

一个完整的组件主要由以下几大功能点构成:

  • 状态数据:此部分用于维护组件的数据,涵盖传入参数、响应式数据以及内部私有变量。传入参数让组件可接收外部传递的数据,提升组件的通用性;响应式数据能实时响应数据变化,确保组件界面及时更新;内部私有变量用于组件内部逻辑处理,保障数据的安全性与独立性。
  • 生命周期:组件从创建到销毁的过程中,会提供不同阶段的钩子函数。开发者可借助这些钩子函数,在组件生命周期的各个阶段执行特定的业务逻辑。比如,在组件创建时进行数据初始化,在销毁时清理相关资源,以此确保组件正常运行和资源合理管理。组件生命周期
  • 方法逻辑:开发者可在此创建公开或私有方法。公开方法可供外部调用,便于其他组件或模块与该组件交互,实现功能的复用与扩展;私有方法用于组件内部逻辑处理,保证组件内部逻辑的封装性与独立性。
  • 事件处理:事件主要分为组件/元素事件和组件内部事件两种类型。组件/元素事件用于响应用户对组件或元素的操作,如点击、鼠标移动等;组件内部事件用于组件内部各部分之间的通信与交互,确保组件内部逻辑的连贯性与协同性。
  • 组件布局:开发者能够通过可视化拖拽的方式管理组件布局,同时可配置组件的属性、区块以及事件。此外,平台提供的大纲树功能,能以更直观的方式帮助开发者查看和管理组件结构,让组件布局的设计与调整更加便捷高效。

若您希望深入了解组件开发的底层细节,可查阅核心框架文档。

状态数据

component.png

当打开一个组件页面文件时,工作台左侧菜单中会显示组件数据菜单,点击后即可打开组件数据面板。

从数据使用的角度出发,可将其分为以下几类:

  • 传入参数(props):这是当前组件所需要的参数。这些参数具有响应式特点,一旦外部使用者传递的参数发生变化,会立即通知并更新组件内部的 DOM 节点。这意味着,组件能够实时响应外部传入数据的变动,从而动态调整自身的显示与行为,大大增强了组件的灵活性与复用性。例如,一个按钮组件可能通过 props 接收按钮的文本内容、颜色等参数,当外部传入的文本或颜色改变时,按钮能立刻呈现相应的变化。

  • 响应数据(model):这是组件内部的响应数据。在组件装载开始前,该属性会被“劫持”,进而具备数据响应能力。也就是说,当这个内部数据发生改变时,与之相关联的组件部分会自动更新。比如在一个购物车组件中,商品数量作为响应数据,当数量改变时,购物车的总价显示、商品列表的渲染等相关部分会自动更新,为用户提供实时反馈。

  • 内部私有属性:这类属性既不支持外部调用,也不具备响应式能力,仅作为组件内部临时使用的变量。在这里,你可以声明内部动态数据变量,方便在多个方法中使用。例如,在一个复杂的表单组件中,可能需要一个临时变量来记录表单填写的步骤状态,这个变量只在组件内部的方法中使用,无需对外暴露,也不需要对其变化做出响应式更新。

    生命周期

    我们可以在组件数据面板中的逻辑/事件 - 生命周期中来管理我们的组件生命周期。当我们生命周期右侧的加号按钮后,可以添加生命周期函数。添加后,我们即可在这里维护我们的生命周期逻辑了。(逻辑编排帮助文档可以在这里中查看。)
    component2.png

一个组件或者页面,从创建到销毁是由完整的一套生命周期函数的,我们可以通过这些函数来实现在不同节点中的业务处理。组件生命周期

方法逻辑

我们能够在组件数据面板的逻辑/事件 - 组件方法区域对组件方法进行管理。
component3.png

在创建方法时,可依据具体使用场景决定该方法是否对外开放:

  • 私有方法:仅供组件内部使用,主要用于处理组件内部的业务逻辑。它就像组件内部的“秘密武器”,专注于完成组件内部特定的任务,不会对外暴露接口,保证了组件内部逻辑的封装性和独立性。
  • 公共方法:既可以在组件内部使用,也能对外提供调用能力。这使得组件之间能够进行有效的交互和协作,增强了组件的复用性和扩展性。

当我们将某个方法设置为对外公开后,可以通过ref的方式调用该方法。这里仅作简单演示,若想了解详细内容,可查看组件方法组件布局
component5.png

值得一提的是,平台会自动分析公开方法的参数类型和返回类型,并提供可视化的方法调用界面,极大地提升了开发的便捷性,让开发者能够更轻松地使用和管理组件方法。

事件处理

我们可以在组件数据面板的逻辑/事件 - 对外事件/内部事件区域对组件事件进行管理,同时,这里也是查看组件事件相关信息的重要入口。
component6.png

在此区域,我们能够查看当前组件关于事件的所有信息,这些事件主要分为两类:

  • 对外事件:这是当前组件对外提供的事件处理机制。需要注意的是,该功能仅在组件文件中存在,页面文件不会对外触发此类事件。对外事件使得组件可以与外部进行有效的交互,当组件内部发生特定情况时,能够向外部发送信号,通知其他部分做出相应的响应。例如,一个自定义的下拉菜单组件,当用户选择了某个菜单项时,可以通过对外事件通知父组件进行数据更新等操作。
  • 内部事件:主要是对当前组件内的模板节点进行监听的事件处理。比如,一个按钮的点击事件就属于内部事件。通过监听这些内部事件,我们可以在组件内部实现各种交互逻辑,当用户与组件内的元素进行交互时,触发相应的处理函数,完成特定的任务,如显示提示信息、修改组件状态等。

若想了解关于组件事件的详细内容,可查看组件事件

组件布局

组件布局是组件/页面开发中最为重要的环节之一,我们可以通过工作画布实现对组件/页面的布局编排,实现组件的展现开发。

在前端编辑器中,界面分为左右两个区域,即 开发画布区属性区
front-end2.png

  1. 开发画布区:在此区域,我们能够将 组件 拖入工作画布,完成组件的添加操作。同时,若已添加组件,选中它后可对其属性进行修改,或者执行删除该组件等操作。
  2. 属性区:当未选中任何组件时,默认展示的是组件属性面板。在此,我们既可以更改组件的样式文件,也能够通过 HTML 快速导入节点。而当选中组件时,属性区会呈现该组件的专属属性面板,此面板包含 属性事件区域 这三个类型的属性配置。

    如何添加组件

平台允许我们通过拖拽的方式添加组件。

  • 组件中心:我们可以在组件中心中通过拖拽的方式实现对组件的引用。

  • 资源管理器:我们可以在资源管理中,通过推拽组件类型的文件实现对项目内组件文件的引用。

  • 布局快速添加:当我们选中一个组件时,我们可以在组件点击快速添加打开快速添加组件面板,实现对组件的快速引用。

如何配置组件

我们可以在画布中通过点击的方式来选择某个组件,选中组件后,我们可以在画布左侧面板中查看当前组件的配置信息,并在这里修改组件的参数,包括:组件参数、组件事件、组件区块。
component9.png

组件样式

平台赋予了用户对单个组件进行样式编写的能力。用户可运用嵌套 CSS 语法完成组件样式的编写,平台默认支持 scoped 样式隔离,有效避免样式冲突。同时,也提供 deep() 样式穿透功能,满足特定场景下样式覆盖的需求。

当我们在画布中未选中任何组件时(可在画布下方的快捷操作面板中点击取消选中组件),画布左侧会显示当前组件的属性面板,在这里我们可以维护我们组件的样式:
component10.png

大纲树

平台具备整体布局大纲展示功能,您能够在组件数据面板的大纲树里查看布局结构。此外,该大纲树还提供了丰富的快捷布局操作,助您更高效地完成布局调整。
component11.png

详细的组件布局,请参考组件布局

相关文章
|
25天前
|
人工智能 运维 自然语言处理
别再靠“救火”过日子了:智能运维,正在重塑IT服务的未来
别再靠“救火”过日子了:智能运维,正在重塑IT服务的未来
222 15
|
5天前
|
人工智能 搜索推荐 安全
商务邮件沟通效率提升85%:一套AI指令解决企业邮件痛点
本文基于3000+企业邮件案例,提供一套专业的AI商务邮件指令,通过数据驱动的方法论,帮助企业实现邮件沟通效率提升85%,客户转化率增加60%,年度ROI达400%。包含完整指令代码、实战案例和量化收益分析。
92 11
|
21天前
|
人工智能 自然语言处理 前端开发
构建AI智能体:六、体验Trae指定Qwen-Turbo模型自动生成问答系统
本文介绍如何使用字节跳动的AI编程工具Trae与阿里通义千问Qwen-Turbo模型,快速生成一个智能问答系统。通过图文结合方式,演示从环境搭建、指令生成到界面优化的全过程,涵盖前后端代码自动生成、模型调用封装及交互优化技巧,展现AI辅助开发的高效与趣味,助力开发者提升生产力。
392 12
|
15天前
|
人工智能 供应链 算法
1688开店必看丨新手商家人手一份的运营指南!
在中国电商的宏大叙事中,当大众的目光多聚焦于淘宝、京东等直面消费者的零售巨头时,一条潜行于幕后的“超级供应链动脉”正以前所未有的力量重塑着中国商业的毛细血管。这便是阿里巴巴集团旗下的核心B2B平台——1688。
341 99
|
14天前
|
机器学习/深度学习 人工智能 自然语言处理
构建AI智能体:十二、给词语绘制地图:Embedding如何构建机器的认知空间
Embedding是一种将词语、图像等信息转化为低维稠密向量的技术,使计算机能捕捉语义关系。不同于传统One-Hot编码,Embedding通过空间距离表达语义相似性,如“国王-男人+女人≈王后”,广泛应用于NLP、推荐系统与大模型中,是AI理解世界的基石。
341 13
|
22天前
|
人工智能 监控 Java
构建定时 Agent,基于 Spring AI Alibaba 实现自主运行的人机协同智能 Agent
借助 Spring AI Alibaba 框架,开发者可快速实现定制化自动定时运行的 Agent,构建数据采集、智能分析到人工参与决策的全流程AI业务应用。
482 37
|
4天前
|
关系型数据库 MySQL 数据管理
MySQL数据库基本操作包括增加、删除、更新和查询
值得注意的是,虽然上述操作看起来直观易懂,但实际情况中可能会遇到数据类型、索引、性能优化和事务处理等高级话题。因此,数据库管理员或开发人员在对数据库进行操作时,应具备深入的理解和丰富的实践经验。
84 19
|
20天前
|
机器学习/深度学习 人工智能 文字识别
全新框架 Glyph 开源:用视觉理解文本,3–4 倍上下文压缩,近 5 倍推理提速!
清华CoAI与智谱AI提出Glyph新范式,将长文本渲染为图像,通过视觉语言模型实现高效长上下文处理。3-4倍压缩比,性能媲美主流大模型,显存占用降2/3,低成本支持百万token任务,开源可商用。
428 26
|
22天前
|
监控 关系型数据库 MySQL
在CentOS系统中,如何统计哪个进程打开了文件描述符?
利用上述方法,你可以有效地监控和统计CentOS系统中的进程打开的文件描述符数量,以帮助排查错误或优化系统配置。通过组合使用各种工具和命令,可以获得对系统状态和行为的深入了解,进而做出相应的调整和优化。这些技术对于系统管理员以及希望更深入了解系统内部工作原理的技术人员来说,是极具价值的知识。
235 104
|
25天前
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(三):湖流一体
原文:https://jack-vanlightly.com/blog/2025/9/2/understanding-apache-fluss 作者:Jack Vanlightly 翻译:Wayne Wang@腾讯 译注:Jack Vanlightly 是一位专注于数据系统底层架构的知名技术博主,他的文章以篇幅长、细节丰富而闻名。目前 Jack 就职于 Confluent,担任首席技术架构师,因此这篇 Fluss 深度分析文章,具备一定的客观参考意义。译文拆成了三篇文章,本文是第二篇。
308 25
Confluent 首席架构师万字剖析 Apache Fluss(三):湖流一体