表达式概要

特色

在众触开发应用无需编写传统代码,所有的数据与业务逻辑都是使用表达式expression来描述。它是专注于web应用的领域特定语言(Domain Specific Language,简称DSL)。
众触表达式简练、直观、容易上手,功能依然很强大,可以灵活表达各种业务需求,是快速创作应用的法宝,是众触应用平台的灵魂。

使用场景

  • 页面展示:用小括弧把表达式括起来在页面中展示动态数据

  • 事件逻辑:在事件中使用表达式来操作页面元素、数值运算、操作数据库

  • 后端服务:在后端服务器中使用表达式来认证用户权限、过滤非法操作、自定义服务,定时服务等

分行编写 同步执行

多个表达式连续执行时我们通常分行写,一行一条。如果把表达式直接作为文本参数时则用;隔开。
通常表达式都是同步执行(按顺序执行)的,即一条表达执行完毕才会开始执行下一条,即使是耗时的网络请求/数据库操作也是如此,除了少量异步函数外。如果上一条表达式有返回值则以$r传给下一条表达式,比如从数据库取回的值。

右键全屏编辑

右键点击表达式编辑框可以全屏编辑,编辑体验更好。

$exp

内部表达式,当参数是多条表达式时的便利写法,只在当前组件的事件内有效,所以也称作事件内表达式
类似的还有内部对象$obj和内部代码$js

$c.exp

外部表达式,在整个应用中都可调用,所以也称作共享表达式。

特别地,如下5个表达式名称有特殊用途:

$c.exp.request会在应用首次发出请求时(即在服务器端渲染时)调用,适合获取全局必备的基础数据;

$c.exp.init会在应用初始化时调用,适合全局数据初始化;

$c.exp.ready会在应用首次加载完成后调用,适合全局数据库获取工作;

$c.exp.login会在取得登录用户的数据后调用,适合获取用户相关数据;

$c.exp.apiData会在所有数据库API每次返回数据后调用。

类似的还有外部对象$c.obj,外部数组$c.arr和外部代码$c.js

由于$c.exp/$c.obj/$c.arr/$c.js是在整个应用中共享的,用户打开应用的第一个页面的时候就会加载它们,即使这个页面并没使用到。大量使用在整个应用中共享的资源会减慢用户首次打开应用的速度。

由众触低代码平台生成和驱动