# 脚本文件的组织

# 脚本类别

系统应用开发主要使用脚本,分前端脚本和后端脚本,分为下面几种:

  1. .ts - 前端js脚本,运行于浏览器端,语法是typescript
  2. .action.ts - 后端脚本,运行于服务器端JVM,语法是typescript,系统最终会将脚本编译成java class进行运行,确保性能
  3. .less - 前端css脚本,运行于浏览器端,语法是less,兼容css

# 钩子脚本

钩子脚本是指只要钩子脚本存在,系统就会自动使用它,钩子脚本分系统级别、项目级别和应用级别组织,包括前端和后端脚本,主要包括:

  • sysdata -- 系统级
    • settings
      • hooks.action.ts -- 系统级别的钩子事件函数,用于监听系统级别事件
      • public
        • custom.ts -- 自动加载到系统所有页面(不含登录页)
        • custom.less -- 自动加载到系统所有页面(不含登录页)
  • {project} -- 项目级
    • settings
      • hooks.action.ts -- 项目级别的钩子事件函数
      • public
        • custom.ts -- 自动加载到项目内所有用户定义页面
        • custom.less -- 自动加载到项目内所有用户定义页面
    • app
      • {app1} -- 应用级
        • hooks.action.ts -- 应用级别的钩子事件函数
        • custom.ts -- 自动加载到应用内所有用户定义页面
        • custom.less -- 自动加载到应用内所有用户定义页面

钩子脚本应用规范:

  1. 脚本分系统级别、项目级别、应用级别和页面级别组织
  2. 系统级别为/sysdata/settings/目录下,主要用于监听系统服务器事件、修改系统的功能性页面,如设计器
  3. 项目脚本用于监听项目内事件或个性化项目内的页面的UI,项目脚本不处理项目中的应用的相关事件和页面,应用内的逻辑由应用级别脚本完成
  4. 应用脚本用于监听应用内的事件或个性化应用内的页面的UI,应用内的自定义逻辑由应用级别脚本完成,不会应用应用所在项目的相关脚本。
  5. 未登录用户也可以访问这个文件,所以将它放在public目录下面,这样就不需要给它分配权限。

# 页面级脚本

在页面设计器中(点击【视图】->【底部面板】->【前端脚本|样式脚本】),可以开发只作用于当前页面的脚本,包括浏览器端js脚本和css样式脚本,页面级别的脚本会自动存储在页面所在的目录,与页面同名(后缀不同),总是作用于当前页面,如果页面存在于应用或项目,那么也会调用所属应用或项目的脚本:

  • page1.spg
  • page1.ts -- 页面级别前端脚本,加载到当前页面内
  • page1.less -- 页面级别前端样式,加载到当前页面内

# 最佳实践

  1. 推荐将一个应用内的所有脚本都开发在应用内
  2. 如果脚本量较大,可以适当的使用模块化分目录管理,并通过脚本的import功能引入模块
是否有帮助?
0条评论
评论