Salesforce学习之路(十一)Aura组件属性<aura:attribute />
1. <aura:attribute />语法
Aura组件属性类似与Apex中类的成员变量(或者说Java中类的成员变量)。他们是组件在特定的实例上设置的类型化字段,可以使用表达式语法从组件的标记内引用他们。
语法:<aura:attribute name="**" type="**" default="**" required="true/false" access="**" description="**">
- name:必要字段,属性的名称
 - type:必要字段,属性的类型,支持的类型见下面的“属性type支持的类型”
 - default:非必要字段,默认值类型与type一致。
 - required:非必要字段,标记该属性是否为必须字段。true:表该字段为必要字段;false:表该字段为非必要字段。
 - access: 非必要字段,表该属性是否可被所属命名空间之外使用。public(默认):所有命名空间皆可用;global:应用内可使用;private: 组件内可使用。
 - description: 非必要字段,对该属性进行简单的描述。
 
示例:
<aura:component>
<aura:attribute name="whom" type="String" default="world"/>
Hello {!v.whom}!
</aura:component>
2. 属性命名规则:
- 必须以字母或者下划线开头
 - 必须仅包含字母,数字,下划线字符
 
示例:
<!--正确-->
<aura:attribute name="test" type="String" />
<aura:attribute name="_test" type="String" />
<aura:attribute name="__123" type="String" /> <!--错误-->
<!--数字开头-->
<aura:attribute name="1test" type="String" />
<!--含有特殊字符-->
<aura:attribute name="test#" type="String" />
3. 属性type支持的类型
<aura:attribute />支持的类型有以下几种:基础类型,函数类型,对象类型,标准和自定义对象类型,集合类型,Apex Class类型,指定框架类型。
- 基础类型
 
| 类型 | 示例 | 描述 | 
| Boolean | <aura:attribute name="showDetail" type="Boolean" /> | 值为true/false | 
| Date | <aura:attribute name="startDate" type="Date" /> | 日期类型,格式为:yyyy-mm-dd。hh:mm:ss没有保存。 | 
| DateTime | <aura:attribute name="lastModifiedDate" type="DateTime" /> | 
 日期类型,对应时间戳格式。 保存了除了日期,还保存了时间,并且精确到毫秒。  | 
| Decimal | <aura:attribute name="totalPrice" type="Decimal" /> | 
 十进制,可以包括小数部分。对应Java.math.BigDecimal,精度高于Double类型。 针对货币字段,一般选择该类型。  | 
| Double | <aura:attribute name="widthInchesFractional" type="Double" /> | Double类型,可以包含小数位。对应Java.lang.Double。 | 
| Integer | <aura:attribute name="numRecords" type="Integer" /> | 整数类型,不包含小数位。对应Java.lang.Integer。 | 
| Long | <aura:attribute name="numSwissBankAccount" type="Long" /> | 长整型,不包含小数位。对应Java.lang.Long。 | 
| String | <aura:attribute name="message" type="String" /> | 字符串类型。 | 
示例:
<aura:attribute name="favoriteColors" type="String[]" default="['red','green','blue']" />
- 函数类型
 
属性的类型可以对象Javascript中的某个函数。如果子组件具有该类型的属性,可传递回调函数给父组件。
示例:
<aura:attribute name="callback" type="Function" />
注意:该类型不适用于服务端,仅在客户端使用。
- 对象类型
 
该类型的属性对应一个对象。
示例:
<aura:attribute name="data" type="Object" />
注意:一般情况下,不建议使用该类型。object类型的属性在传递至服务端时,会将所有的东西序列化为字符串,此时如果使用深度表达(例如:v.data.property),则会抛出字符串没有该属性异常。因此,尽量使用type="Map",防止出现反序列化等问题。
- 标准或自定义对象类型
 
属性支持标准或自定义对象的类型。
示例:
<!--标准对象-->
<aura:attribute name="account" type="Account" />
<!--自定义对象-->
<aura:attribute name="employee" type="Employee__c" />
注意:用户至少对该对象具有读取权限,否则组件虽然不会报错,但是页面不会加载。
- 集合类型
 
下面为支持的集合类型:
| 类型 | 示例 | 描述 | 
| type[](Array) | <aura:attribute name="colorPalette" type="String[]" default="['red', 'green', 'blue']" /> | 自定义数组 | 
| List | <aura:attribute name="colorPalette" type="List" default="['red', 'green', 'blue']" /> | 有序的列表 | 
| Map | <aura:attribute name="sectionLabels" type="Map" default="{ a: 'label1', b: 'label2' }" /> | 
 key:value集合。key不可重复。 如果不设置默认值,则在Javascript中默认设为null。 如果想设置空值,可写为:default="{}"  | 
| Set | <aura:attribute name="collection" type="Set" default="['red', 'green', 'blue']" /> | 集合,无序,不含重复元素。 | 
示例:
<!--这里使用type[]类型-->
<aura:attribute name="displayMonth" type="String[]" default="['6', '12']" />
- Apex Class类型
 
该类型属性对应一个Apex类。
示例:
存在某个自定义Apex类:DemoAuraController.cls
<!--存在名为:DemoAuraController.cls的Apex类-->
<aura:attribute name="data" type="DemoAuraController" />
注意:type类型大小写不敏感,例如这里可以写成demoauracontroller。
- 指定框架类型
 
下面为支持的指定框架类型:
| 类型 | 示例 | 描述 | 
| Aura:component | N/A | 
 一个单独的组件。 相比较而言,官方推荐使用Aura:component[]类型。  | 
| Aura:component[] | 
<aura:component>  | 
利用该类型可以设置一个类型块。 | 
| Aura.Action | <aura:attribute name =“ onclick” type =“ Aura.Action” /> | 使用此类型,可以将action传递给组件。 | 
4. 实例分析
sample.cmp
<aura:component controller="TestAuraController"
implements="force:appHostable,flexipage:availableForAllPageTypes"
access="global"> <aura:attribute name="whom" type="String" default="world" /> <!--组件初始化操作-->
<aura:handler name="init" value="{!this}" action="{!c.handleInit}" />
<div>
<!--按钮组件,label为界面显示值;onclick: 点击按钮时触发controller.js中applyHandle函数-->
<!--display: true表示按钮灰掉,无法操作;false表示正常工作-->
<lightning:button label="Apply" onclick="{!c.applyHandle}" disabled="false" />
</div>
</aura:component>
sampleController.js
({
    handleInit: function (cmp, event, helper) {
        // 初始化组件时,将whom默认值打印值控制台
        console.log("init whom: " + cmp.get('v.whom'));
    },
    applyHandle: function (cmp, event, helper) {
        // 点击Apply按钮时,更新whom值,并打印到控制台
        cmp.set('v.whom', 'updated');
        console.log("apply whom: " + cmp.get('v.whom'));
    }
})
结果分析:
#初始化:
init whom: world
#点击apply按钮:
apply whom: updated
作者:吴家二少
博客地址:https://www.cnblogs.com/cloudman-open/
本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
Salesforce学习之路(十一)Aura组件属性<aura:attribute />的更多相关文章
- Salesforce学习之路(十二)Aura组件表达式
		
1. 表达式语法 在上篇文章组件属性示例中,新建了一个属性whom, 引用该属性时使用了表达式:{!v.whom},负责该属性的动态输出. 语法:{!expression} 上述示例中,我们的属性名称 ...
 - Salesforce学习之路(十三)Aura案例实战分析
		
Aura相关知识整合: Salesforce学习之路(十)Aura组件工作原理 Salesforce学习之路(十一)Aura组件属性<aura:attribute /> Salesforc ...
 - 『NiFi 学习之路』自定义 —— 组件的自定义及使用
		
一.概述 许多业务仅仅使用官方提供的组件不能够满足性能上的需求,往往要通过高度可定制的组件来完成特定的业务需求. 而 NiFi 提供了自定义组件的这种方式. 二.自定义 Processor 占坑待续 ...
 - Salesforce学习之路-developer篇(五)Aura组件原理及常用属性
		
很喜欢曾经看到的一句话:以输出倒逼输入.以输出的形式强制自己学习,确实是高效的学习方式,真的很棒.以下仅为个人学习理解,如有错误,欢迎指出,共同学习. 1. 什么是Lightning Componen ...
 - Salesforce学习之路(十)Aura组件工作原理
		
很喜欢曾经看到的一句话:以输出倒逼输入.以输出的形式强制自己学习,确实是高效的学习方式,真的很棒.以下仅为个人学习理解,如有错误,欢迎指出,共同学习. 1. 什么是Lightning Componen ...
 - Salesforce学习之路-developer篇(五)一文读懂Aura原理及实战案例分析
		
1. 什么是Lightning Component框架? Lightning Component框架是一个UI框架,用于为移动和台式设备开发Web应用程序.这是一个单页面Web应用框架,用于为Ligh ...
 - Salesforce学习之路(十)Org的命名空间
		
1. 命名空间的适用场景 每个组件都是命名空间的一部分,如果Org中设置了命名空间前缀,那么需使用该命名空间访问组件.否则,使用默认命名空间访问组件,系统默认的命名空间为“c”. 如果Org没有创建命 ...
 - Salesforce学习之路(九)Org的命名空间
		
1. 命名空间的适用场景 每个组件都是命名空间的一部分,如果Org中设置了命名空间前缀,那么需使用该命名空间访问组件.否则,使用默认命名空间访问组件,系统默认的命名空间为"c". ...
 - hibernate学习笔记(6)组件属性以及单表操作
		
组件属性:实体类中的某个属性属于用户自定义类的对象: 作用:将两个实体类合并在一起组建成一个表 在hbm.xml文件中配置: 格式: <component name="取的名字&quo ...
 
随机推荐
- 自定义的Spring Boot starter如何设置自动配置注解
			
本文首发于个人网站: 在Spring Boot实战之定制自己的starter一文最后提到,触发Spring Boot的配置过程有两种方法: spring.factories:由Spring Boot触 ...
 - maven 打包 spring boot 生成docker 镜像
			
1.所使用材料 ,spring boot 项目 基于maven ,maven 工具, docker工具 ps:为啥使用 docker 公司微服务需要启动太多,有两个优点吧! 1.方便管理,2.减少服务 ...
 - 用Java JMC控制台分析线程阻塞原因
			
问题 今天在玩dianping-CAT框架时,发现请求某个页面的时候,发生了阻塞.浏览器得不到响应. 环境 本地Tomcat 8 , Windows 系统. 解决 启动jmc 控制台,找到BLOCKE ...
 - django-表单之获取表单信息(二)
			
urls.py from django.urls import path from . import views urlpatterns = [ path('',views.index,name=&q ...
 - Dubbo学习系列之十六(ELK海量日志分析框架)
			
外卖公司如何匹配骑手和订单?淘宝如何进行商品推荐?或者读者兴趣匹配?还有海量数据存储搜索.实时日志分析.应用程序监控等场景,Elasticsearch或许可以提供一些思路,作为业界最具影响力的海量搜索 ...
 - rsync的笔记整理
			
Rsyncd数据同步工具 1.什么是Rsyncs? Rsync(Remote synchronization)是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具.Rsy ...
 - JVM三部曲之运行时数据区 (第一部)
			
在接下来的几天想总结下,JVM相关的一些内容,比如下面的这三个内容算是比较核心知识点了 1.运行时数据区域: 在运行时数据区里存储类Class文件元数据(方法区),对象和数组(堆),方法参数局部变量( ...
 - github 下载子目录内容 亲测可用!
			
下载我的LYBTouchID项目的Kit目录内容 (1)在github上点开这个目录,浏览器地址栏可以得到这个地址 https://github.com/Liuyubao/LYBTouchID/tre ...
 - postman的监控接口响应时间monitor
			
Monitor简介1.是基于Postman集合API的灵活监控 2.监控API的正常运行时间.响应能力和正确性 3.提供监测结果的详细报告 4.对所有Postman用户每月提供1000个免费的监控请求 ...
 - SAP Web Service简介与配置方法
			
[版权声明]本文为博主原创文章,转载请在明显位置注明出处. 一. SAP Web Service简介 二. SAP Web Service配置准备工作 1. 通过RZ10配置服务器名称和其他参数 2. ...