ASTRO轻应用 ASTROZERO-管理AstroZero高级页面:管理页面级数据源、全局状态

时间:2024-09-11 14:03:26

管理页面级数据源、全局状态

页面组件之间,可以通过配置事件和动作进行信息交互。当页面组件较多,且需要进行信息交互时,频繁的给每个组件去定义事件或动作就比较繁琐了。此时,可以通过定义全局状态,来实现页面级所有组件中数据信息的更新。

AstroZero低代码平台高级页面支持设置全局状态,通过页面级内存方式共享数据,即采用集中式存储管理页面所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。简单的理解就是全局状态,可理解为页面中所有组件的共享状态,不管组件在页面的哪个位置或层级,任何组件都能获取状态或触发状态改变的动作。全局状态相当于全局变量,属性是私有的,需要在组件的js文件中,使用预置的“this.$mstore.dispatch”方法,来修改状态数据。

思考:什么情况下,应该使用全局状态?

解惑:当页面组件构成比较简单,组件间不需要频繁的进行信息交互时,不需要设置全局状态。反之,则建议使用全局状态,通过设置并使用全局状态,可以帮助您管理页面所有组件的共享状态。

  1. 参考登录AstroZero新版应用设计器中操作,登录应用设计器。
  2. 在左侧导航栏中,选择“界面”
  3. 在高级页面中,单击对应的页面,进入高级页面开发界面。
  4. 在页面右上角,单击,定义全局状态。

    定义全局状态使用JavaScript编程语言,不支持TypeScript。全局状态结构固定以MStore命名,每个页面仅包含一个全局状态实例,方便在组件调试的过程中,轻易的获取整个当前页面状态的快照。全局状态的结构定义由以下三部分组成:

    • state:定义页面所有组件的初始状态数据,即页面中所有组件共享状态的初始数据源。
    • mutations:状态变更的唯一方法是提交mutation。mutation以声明的方式,将state变化映射到视图,每次state的变更都需要定义一个mutation。mutation使用对象风格的提交方式,整个对象都作为载荷(payload)传给mutation函数,mutation都是同步事务。
    • actions:通过actions执行状态数据变更,用于衔接state和mutation。Action可以包含任意异步操作,通常用于绑定状态和组件,可以调用服务。

  5. 在页面的组件js文件中,使用预置的“this.$mstore.dispatch()”方法,修改状态数据。
support.huaweicloud.com/usermanual-astrozero/astrozero_05_9118.html