在众触开发应用无需编写传统代码,所有的数据与业务逻辑都是使用表达式expression来描述。它是专注于web应用的领域特定语言(Domain Specific Language,简称DSL)。
众触表达式简练、直观、容易上手,功能依然很强大,可以灵活表达各种业务需求,是快速创作应用的法宝,是众触应用平台的灵魂。
页面展示:用小括弧把表达式括起来在页面中展示动态数据
事件逻辑:在事件中使用表达式来操作页面元素、数值运算、操作数据库
后端服务:在后端服务器中使用表达式来认证用户权限、过滤非法操作、自定义服务,定时服务等
多个表达式连续执行时我们通常分行写,一行一条。如果把表达式直接作为文本参数时则用;
隔开。
通常表达式都是同步执行(按顺序执行)的,即一条表达执行完毕才会开始执行下一条,即使是耗时的网络请求/数据库操作也是如此,除了少量异步函数外。如果上一条表达式有返回值则以$r
传给下一条表达式,比如从数据库取回的值。
右键点击表达式编辑框可以全屏编辑,编辑体验更好。
内部表达式,当参数是多条表达式时的便利写法,只在当前组件的事件内有效,所以也称作事件内表达式
类似的还有内部对象$obj
和内部代码$js
外部表达式,在整个应用中都可调用,所以也称作共享表达式。
特别地,如下5个表达式名称有特殊用途:
$c.exp.request
会在应用首次发出请求时(即在服务器端渲染时)执行,适合获取全局必备的基础数据;
$c.exp.init
会在应用初始化时执行(客户端),适合全局数据初始化;
$c.exp.ready
会在应用首次加载完成后执行,适合全局数据库获取工作;
$c.exp.login
会在取得登录用户的数据后执行,适合获取用户相关数据;
$c.exp.apiCall
会在每次调用POST类API前执行,通常用来给query添加公共参数;
$c.exp.apiData
会在每次后端API返回数据后执行。
类似的还有外部对象$c.obj
,外部数组$c.arr
和外部代码$c.js
由于$c.exp/$c.obj/$c.arr/$c.js是在整个应用中共享的,用户打开应用的第一个页面的时候就会加载它们,即使这个页面并没使用到。大量使用在整个应用中共享的资源会减慢用户首次打开应用的速度。