Trailhead链接

https://trailhead.salesforce.com/content/learn/projects/workshop-lightning-programmatic?trail_id=lex_dev

一 hello world

先初始化一个trailhead playground, 在那里安装一个package用于后续使用. 安装后进入Dreamhouse Lightning app点Data Import。

然后创建一个lightning component.

创建时有5个选项。

Lightning Tab,

Lightning Page, 可用作home page / record page

Lightning Record Page (此次练习选这个)

Lightning Communities Page

Lightning Quick Action.

一个Aura component包括:controller, helper, style, documentation(文档,会出现在自己org的help页面里), design (据说是最重要的,用于给app builder暴露参数,然鹅平时我不太用到), svg(这个component的矢量icon)

打开developer console, 创建lightning component, 选Lightning Record Page, 相应的在创建后发现它的implements里面包括了flexipage:availableForRecordHome以及force:hasRecordId

有两种方式查看component效果:

a. 添加到一个lightning app中。lightning app是一个独立的app,不是依赖于lightning experience.

b.放在一个page中

到一个record 页面,点击右上角的齿轮->Edit Page,进入lightning app builder的编辑页面,把hello world组件拖进去, save并且activate。在activate这个环节,可选择当前页面是org default/ app default/ app,record type, profile default。

在hello world中添加内容及样式。

可能会发现页面样式并没有被及时刷新。这是浏览器缓存造成的。可以在Setup -> Session Setting里取消勾选“Enable secure and persistent browser caching to improve performance

接下来是component的attribute定义,双向绑定,controller取值 (这咱都会,就略了,呵呵)

在record页面上点齿轮,然后点Edit快速定义record page (之前我一直是进object manager ...很慢)

挑几个值得记一笔的:

lightning:recordViewForm

lightning:layout 它是一个灵活的grid system

lightning:layoutItem size="6"

跳转记录

var navEvt = $A.get("e.force:navigateToSObject");
        navEvt.setParams({
            "recordId": component.get("v.property.Id")
        });
        navEvt.fire();

铅笔编辑符号

<lightning:buttonIcon iconName="utility:edit" class="slds-col_bump-left" iconClass="slds-button__icon_hint" variant="bare" alternativeText="Edit Record" οnclick="{!c.editRecord}" />

编辑记录

var editRecordEvent = $A.get("e.force:editRecord"); editRecordEvent.setParams({ "recordId": component.get("v.property.Id") }); editRecordEvent.fire();

动态修改style class

$A.util.toggleClass(editForm, "slds-hide");

修改记录

<lightning:recordViewForm aura:id="viewForm" recordId="{!v.property.Id}" objectApiName="Property__c">

使用data servicee

<force:recordData aura:id="propertyService" recordId="{!v.recordId}" targetRecord="{!v.property}" recordUpdated="{!c.doInit}" layoutType="FULL"/>

使用component design parameters: 它暴露给app builder, 每个design attribute在component里必须有一个同名的attribute与之对应。design attribute可以是text input或者是picklist (datasource定义成一个逗号分隔的字符串,表示可选的options列表)

design parameter可以使得app builder在添加component的时候能定义使用哪个参数参与计算,增加component的灵活性。

如果在design file里定义了:

<sfdc:objects> <sfdc:object>某sObject的APIName</sfdc:object> </sfdc:objects>

那么它表示这个component可以给指定的sObject使用。如果需要用于多个sObject,添加定义<sfdc:object>即可。

自定义component的icon

在slds网站下载Icon,解压缩,把svg文件用text editor打开,copy里面的path部分,打开component的svg文件,替换里面的path部分。

刷Trailhead笔记- 用aura component创建app相关推荐

  1. 【TrailHead】Create a test harness app and component

    [TrailHead]Create a test harness app and component 错误内容 原因 解决 确认 错误内容 Could not add Lightning compon ...

  2. Aura Component父子组件通信

    [前言] 创建Aura Event,是父子组件的一种通信方式.通过子组件发送事件,父组件捕获事件来完成.这种方式需要额外创建新文件来实现,本文认为这可能不是一种最优解,接下来我们一起看看其他的可能解法 ...

  3. Python学习笔记:Day15 部署Web App

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  4. java二叉树转换为链表_leetcode刷题笔记-114. 二叉树展开为链表(java实现)

    leetcode刷题笔记-114. 二叉树展开为链表(java实现) 题目描述 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 rig ...

  5. PyQt5笔记(01) -- 创建空白窗体

    目录 PyQt5笔记(01) – 创建空白窗体 PyQt5笔记(02) – 按钮点击事件 PyQt5笔记(03) – 消息框 PyQt5笔记(04) – 文本框的使用 PyQt5笔记(05) – 绝对 ...

  6. LeetCode《编程能力入门》刷题笔记(34 题全)

    LeetCode<编程能力入门>刷题笔记 基本数据类型 1. 在区间范围内统计奇数数目 _解法1:暴力迭代 _解法2:数学(找规律) 2. 去掉最低工资和最高工资后的工资平均值 _解法1: ...

  7. 《剑指 Offer I》刷题笔记 11 ~ 19 题

    <剑指 Offer I>刷题笔记 11 ~ 19 题 查找算法(中等) 11. 二维数组中的查找 _解法 1:暴力迭代 解法 2:标志数 解法 3:逐行二分 12. 旋转数组的最小数字 _ ...

  8. 《剑指 Offer I》刷题笔记 1 ~10 题

    <剑指 Offer I>刷题笔记 1 ~10 题 栈与队列(简单) 1. 用两个栈实现队列 _解法 1:暴力做法 解法 2:优化解法 1 2. 包含 min 函数的栈 _解法 1:pop( ...

  9. 数据库,计算机网络、操作系统刷题笔记20

    数据库,计算机网络.操作系统刷题笔记20 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其s ...

最新文章

  1. Linux Shell 逻辑运算符、逻辑表达式详解
  2. G面经prepare: Pattern Match
  3. 使用opencv训练cascade分类器进行目标检测
  4. python语言采用编译执行方式_Python程序的执行过程 解释型语言和编译型语言
  5. leetcode 712. Minimum ASCII Delete Sum for Two Strings | 712. 两个字符串的最小ASCII删除和(暴力递归->傻缓存->DP)
  6. python处理netcdf_在python中高效读取netcdf变量
  7. python3 面向对象_Python3 面向对象
  8. java 多重压缩下载_Java 多文件边压缩边下载
  9. 常用SQL语句(增删查改、合并统计、模糊搜索)
  10. 华为在 Linux Kernel 5.10 中代码贡献排名第一,中国 AI 足球队夺冠 | 开发者周刊
  11. java打包成jar_把Java程序打包成jar文件包并执行的方法
  12. 关于flink的时间处理不正确的现象复现原因分析
  13. sqlhelp(sqlite)
  14. Java单例模式——线程安全的懒汉模式
  15. 知识点 —— Python基础-1
  16. matlab 0106,matlab中的plotyy
  17. 如何把一份pdf文件拆分为多个?
  18. QQ空间FLASH代码及其使用方法
  19. cisco 三层交换机与二层交换机级联 vlan trunk
  20. html给页面整体添加左右边距_左右边距相对于页面宽度过大

热门文章

  1. 设计模式03——Template Method模式
  2. altium designer多通道设计技巧
  3. 用MFC中的SetTimer、OnTimer和KillTimer实现的简单计时器与倒计时的Demo
  4. 简单脉搏波波形分析系统设计与实现
  5. 小马pe linux,U盘Grub引导Win PE
  6. spring事物管理
  7. 计算机系高考激励的句子,60条高考激励句子
  8. 20 个关于程序员的笑话,看懂了,你就不会羡慕工资高了!
  9. php重构求圆柱圆锥的体积,将一个体积是120立方厘米的圆柱形木料削成一个最大的圆锥,削去的比剩下的多______立方厘米....
  10. 【让AI为面试赋能系列】利用GPT回答网友的面试题1.0