更新时间:2023-04-24 GMT+08:00
分享

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

使用说明

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

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

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

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

操作步骤

  1. 参考如何登录经典应用设计器中操作,登录经典版应用设计器。
  2. 在高级页面开发界面,单击右上角的,定义全局状态。

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

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

  3. 在页面的组件js文件中,使用预置的“this.$mstore.dispatch()”方法,修改状态数据。

    系统还预置了onStateChanged(state) 方法,用于监听属性整个全局状态的变更。

分享:

    相关文档

    相关产品