Joker 智能开发平台-组件状态数据

简介: 本文介绍了组件状态数据的三种类型:输入参数(props)、响应数据(model)和内部私有属性。输入参数是组件接收的外部参数,具有响应式特点;响应数据是组件内部的响应式数据,值变更会立即更新相关部分;内部私有属性是仅组件内部使用的临时变量。文章详细说明了每种数据的创建、编辑和使用方法,包括在布局模板和方法逻辑中的调用方式,并提供了属性/参数创建的具体步骤,涉及基本信息配置和类型设置等内容。这些数据类型的合理使用能增强组件的灵活性和复用性。

组件状态数据

本章主要讲解组件中的状态数据,我们可以在这里去维护一个组件的参数约束、内部响应式数据以及内部私有变量。

概述

组件状态数据是组件开发中最为常用的功能之一。

component.png

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

从数据使用的角度出发,可将其分为以下几类 输入参数(props)响应数据(model)内部私有属性,接下来我们来详细讲解下这三种数据的用途和如何声明一个属性/参数。

输入参数(props)

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

仅在组件类型文件内才会展示传入参数的配置。页面类型的组件不允许配置接受参数。

如何创建/编辑

我们可以在输入参数(props)面板右侧的加号来打开参数创建面板,在创建参数面板中我们可以配置参数的名称、备注、类型、默认值、演示值。属性创建教程,请阅读本章最后属性/参数创建和编辑小结。

component-data.png

如何使用

创建完参数后便可开始使用,下面将从两个角度为您详细介绍:

1. 声明者视角(当前组件)

在完成参数创建后,即可在组件内部使用所创建的参数。这些参数可在布局模板和方法逻辑中使用:

  • 布局模板:在模板里,可通过表达式的方式props.引用参数变量。
    component-data1.png

  • 方法逻辑:在逻辑编辑面板中,可通过 this.props. 的方式读取组件参数值。
    component-data2.png

贴心提示:若您不太熟悉代码编写,无需过度担忧。平台具备智能的数据管理功能,在表达式编辑面板中会提供智能语法提示,同时还设有数据管理面板。您可以在该面板中查看当前节点所使用的所有变量,只需点击即可快速使用相应变量。

2. 使用者视角(其他组件/页面引用当前组件)

当在其他组件或页面中引用当前组件时,点击该组件,即可在组件参数面板中看到已声明的参数。
component-data3.png

重要建议:对组件参数进行声明时,务必尽可能完整。建议提供参数说明、交互类型、演示值等信息,以便开发人员能快速了解该属性的用途。

响应数据(model)

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

如何创建/编辑

我们可以在响应数据(model)面板右侧的加号来打开参数创建面板,在创建属性面板中我们可以配置参数的名称、备注、类型、默认值、演示值。属性创建教程,请阅读本章最后属性/参数创建和编辑小结。

component-data4.png

认识响应式数据

在这里,我们借助一个 DEMO 来深入理解什么是响应式数据。响应式数据能够在一个值发生变更后,立即通知监听者。在布局模板里,一旦值有所变更,这种变化也会即刻在页面中实现更新

我们通过代码定义了一个响应式数据count。当点击页面上的按钮时,count的值会加一,并且值变更后,页面会马上体现出这一变化

如何使用

在完成属性创建后,即可在组件内部使用所创建的属性。这些属性可在布局模板和方法逻辑中使用:

  • 布局模板:在模板里,可通过表达式的方式model.引用参数变量。
    component-data5.png

  • 方法逻辑:在逻辑编辑面板中,可通过 this.model. 的方式读取组件参数值。
    component-data6.png

贴心提示:若您不太熟悉代码编写,无需过度担忧。平台具备智能的数据管理功能,在表达式编辑面板中会提供智能语法提示,同时还设有数据管理面板。您可以在该面板中查看当前节点所使用的所有变量,只需点击即可快速使用相应变量。

内部私有属性

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

如何创建/编辑

我们可以在内部私有属性面板右侧的加号来打开参数创建面板,在创建属性面板中我们可以配置参数的名称、备注、类型、默认值、演示值。属性创建教程,请阅读本章最后属性/参数创建和编辑小结。

component-data7.png

它的使用方式与参数、响应数据一致,均可通过表达式的方式直接调用。不过,它与响应式数据不同之处在于,它不具备响应式能力。因此,如果该值在组件运行时会发生变更,那么不建议以私有属性的方式在模板中展现。

通常情况下,我们会在多个逻辑方法中定义一个公用属性,以此完成特定的业务逻辑。由于它不具备响应能力,所以既不会造成额外的性能开销,也不会污染原始数据。

属性/参数创建和编辑

这里我们来讲解一下参数属性的编辑面板的操作流程。(属性和参数的创建面板基本一致,只是存在部分属性的差异,在讲解时我们会特别标注,请仔细阅读。)

第一步(属性基本信息)

component-data8.png

  • 属性名称:这里需要我们使用英文字母完成属性名的配置,属性名在当前组件功能中需要保持唯一(即在传入参数中唯一/在响应数据中唯一)
  • 备注/标题:我们可以为其配置一个标题,标题的配置可以帮我们更快速的了解属性的用途,例如:颜色、尺寸等。
  • 提示:我们可以通过提示属性来配置当前属性的详细描述,当我们在使用时,通过鼠标移入可以查看当前属性的详细说明。
  • 分类仅参数需要配置,我们可以在这里配置一个参数的分类,相同的分类在组件属性时会进行分组归类,可以提供使用者更好的体验性。
    component-data9.png

  • 排序:可用于将属性进行排序,值越大在属性面板中越靠前(仅针对输入参数)

第二步(属性类型信息)

component-data10.png

  • 类型:当前属性的类型。
    1. 字符串String
    2. 数字Number
    3. 布尔值Boolean
    4. 数组Array
    5. 对象Object
    6. 方法Function
    7. 时间Date
    8. 任意类型Any
  • 是否非空:可配置当前值是否允许为空(undefined)。
  • 赋值方式仅参数需要配置,当需要为其设置值时,可通过该属性来决定采用何种交互方式为其赋值。不同的数据类型会有不同的赋值方式可选。

    1. 可选值:可创建 Key - Value 的数据,提供下拉框模式的值选择。
    2. 多行文本:采用长文本输入框,可实现多行文本的输入。
    3. 颜色值:展现为颜色设置控件,可快速完成颜色的配置。
    4. CSS 尺寸值:在这里可以配置 CSS 的尺寸值(带单位)。
    5. 样式名:展示为样式设置控件,可快速查询当前项目中的公开样式,实现快速添加。
    6. 图片资源选择:提供内部静态资源的快速选择交互(图片展示效果)。
    7. 资源选择:提供内部静态资源的快速选择交互。
    8. Style 样式:展现一个可视化的 Style 配置面板,可完成一些常用的样式编辑。
    9. 表达式:默认使用表达式(动态脚本)进行过值配置。
  • 默认值:作为参数/属性的默认值,若未配置或未传递值(参数)时,会自动赋值为该默认值。

  • 演示值仅参数需要配置,该属性用于当该组件被引入时,为该属性立即设置一个值,通过演示值可以帮助开发人员在引入组件时有一个更好的首次展示效果,开发人员可以对其修改。

若当前属性类型被配置为:数组/对象时,会在第二步展现深层类型设计面板,我们可以在这里配置对象或数组的内部属性类型。

component-data11.png

内部属性设计面板中的要素和上述内容基本一致,可参考上述功能描述。

相关文章
|
26天前
|
数据可视化 前端开发 JavaScript
智能开发平台-组件开发
JOKER平台支持在线组件开发,无需编译即可实时渲染。组件包含状态数据、生命周期、方法逻辑、事件处理与布局设计,通过可视化拖拽与响应式机制,提升开发效率与复用性。
|
22天前
|
JavaScript
Joker 智能开发平台-组件生命周期
本文介绍了组件生命周期管理方法。在组件数据面板可添加和管理生命周期函数,包括创建、挂载、销毁等阶段。Joker框架支持通过keep-alive属性保持组件状态,并提供了6个关键生命周期函数:created(创建后)、mounted(挂载后)、beforeDestroy(销毁前)、destroyed(销毁后)、sleeped(休眠后)和weakup(唤醒后)。文中还包含相关逻辑编排文档链接和生命周期流程图解说明。
|
22天前
|
数据可视化
Joker 智能开发平台-组件方法
本文介绍了组件方法的创建与使用。在组件数据面板中可添加和维护组件方法,需配置方法名称、备注、参数声明等属性。方法支持内部和外部调用:内部可通过表达式或"内部方法调用"节点实现;外部调用需配置ref标识,仅能调用公开方法。组件方法有助于封装公共逻辑,是构建复杂组件的关键手段,同时提供了可视化调用方式简化开发流程。
好工具推荐系列:护眼工具软件 LightBulb
好工具推荐系列:护眼工具软件 LightBulb
398 0
|
3天前
|
存储 人工智能 安全
AI 越智能,数据越危险?
阿里云提供AI全栈安全能力,为客户构建全链路数据保护体系,让企业敢用、能用、放心用
|
6天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
5天前
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
397 93
|
6天前
|
SQL 人工智能 自然语言处理
Geo优化SOP标准化:于磊老师的“人性化Geo”体系如何助力企业获客提效46%
随着生成式AI的普及,Geo优化(Generative Engine Optimization)已成为企业获客的新战场。然而,缺乏标准化流程(Geo优化sop)导致优化效果参差不齐。本文将深入探讨Geo专家于磊老师提出的“人性化Geo”优化体系,并展示Geo优化sop标准化如何帮助企业实现获客效率提升46%的惊人效果,为企业在AI时代构建稳定的流量护城河。
396 156
Geo优化SOP标准化:于磊老师的“人性化Geo”体系如何助力企业获客提效46%