博客
关于我
Salesforce学习之路(十)Aura组件工作原理
阅读量:463 次
发布时间:2019-03-06

本文共 1327 字,大约阅读时间需要 4 分钟。

Lightning Component框架是一个高效的UI框架,专为开发移动和台式设备的Web应用程序设计。作为Lightning Platform的单页面Web应用框架,它结合了客户端的JavaScript和服务器端的Apex语言,能够构建响应式、动态的用户界面。通过Lightning Component,开发者无需手动编写所有代码,即可创建自定义应用程序。

Lightning Component框架的核心架构包括View和Controller两大部分。View主要采用XML标记结合Aura组件的静态HTML标签进行定义,例如<aura:component>标签。熟悉Visualforce开发者会对此非常熟悉,命名格式遵循namespace:tagName。Aura组件提供了丰富的预定义组件,极大地降低了开发和学习成本,开发者可以直接使用这些组件进行定制化。

在客户端,View负责展示数据,Controller则通过JavaScript与服务端进行数据交互,获取所需数据并传递给View。服务端部分主要包含Controller和Database,Controller采用Apex语言(类似于Java)进行开发,数据库则通过DML操作进行数据管理。Apex类文件以.cls为后缀,客户端View文件通过类名称进行绑定。

Aura组件是基于Lightning Component框架的二次开发,其主要特点是通过组件捆绑包实现功能扩展。组件的命名规则要求组件名称以字母开头,仅包含字母、数字和下划线字符,且在命名空间中唯一。避免使用空格、下划线结尾以及连续下划线。

创建一个新的Aura组件捆绑包时,工程会自动生成多个资源文件,包括.auradoc(组件文档)、.cmp(组件标记文件)、.css(CSS样式文件)、.design(设计文件)、.controller.js(客户端控制器文件)、.helper.js(辅助函数文件)、.renderer.js(渲染器文件)、.svg(图标文件)和.controller.cls(服务端控制器文件)。这些资源文件严格遵循命名规则,并自动绑定连接,例如<aura:component controller="TestAuraController">会自动连接TestAuraController.cls类。

组件的工作原理非常清晰。组件的核心是.cmp文件,该文件定义组件的视图,其他文件如.controller.js.helper.js则负责与服务端数据进行交互。.controller.js与View交互获取数据,.helper.js与服务器Controller交互获取数据库数据,两者共同完成组件的功能开发。通过合理配置组件的访问控制,可以严格控制组件、属性、接口、事件和方法的访问权限,确保组件的安全性和可维护性。

在组件开发过程中,CSS样式和标记文件的设计至关重要。组件的顶级元素必须添加.THIS类,防止CSS样式被其他组件的样式覆盖。例如,.THIS .white类可以为特定元素定义白色背景样式,而未加类的顶级元素则使用默认的.THIS样式。这种方式确保了组件的样式唯一性和一致性。

转载地址:http://ecbbz.baihongyu.com/

你可能感兴趣的文章
NoSQL介绍
查看>>
NoSQL数据库概述
查看>>
Notadd —— 基于 nest.js 的微服务开发框架
查看>>
NOTE:rfc5766-turn-server
查看>>
Notepad ++ 安装与配置教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
Notepad++在线和离线安装JSON格式化插件
查看>>
notepad++最详情汇总
查看>>
notepad++正则表达式替换字符串详解
查看>>
notepad如何自动对齐_notepad++怎么自动排版
查看>>
Notes on Paul Irish's "Things I learned from the jQuery source" casts
查看>>
Notification 使用详解(很全
查看>>
NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()
查看>>
NotImplementedError: Could not run torchvision::nms
查看>>
nova基于ubs机制扩展scheduler-filter
查看>>
Now trying to drop the old temporary tablespace, the session hangs.
查看>>
nowcoder—Beauty of Trees
查看>>
np.arange()和np.linspace()绘制logistic回归图像时得到不同的结果?
查看>>
np.power的使用
查看>>
NPM 2FA双重认证的设置方法
查看>>
npm build报错Cannot find module ‘webpack/lib/rules/BasicEffectRulePlugin‘解决方法
查看>>