Placing Lightning components, flows and Visualforce
Choosing between Lightning web components, screen flows, quick actions and Visualforce for a UI requirement, and configuring where each surfaces: js-meta.xml targets, record context, flow screens, Experience Builder, navigation and the Visualforce controller patterns still tested.
Given a scenario, display and use custom user interface components, including Lightning components, Flow, and Visualforce.
~8 min read · 18 practice questions ·
What the exam expects
- Choose a Lightning web component, screen flow, quick action or Visualforce page for a requirement, including when Visualforce is still the answer (PDF output, existing pages).
- Configure
.js-meta.xmlso a component appears in Lightning App Builder, flow screens, record actions, the utility bar or Experience Builder, with admin-configurable properties. - Give a component or flow record context (
recordId) and navigate from a component to records and prefilled new-record pages. - Pick between a standard controller, a controller extension and a standard set controller, and embed Lightning components in Visualforce.
Key terms. Target: a <target> in .js-meta.xml naming where a component can be used. targetConfig: per-target design properties. Screen quick action: an LWC shown in a modal from a record page. Controller extension: Apex that adds to a standard or custom controller. Standard set controller: the Visualforce list controller for a set of records.
Key facts
- Detail
isExposedtrue plus at least one<target>
- Detail
@apiin JS plus<property>in atargetConfig; config type wins on mismatch
- Detail
- Public
@api recordId, set to the 18-character Id in a record context
- Detail
lightningCommunity__Page;lightningCommunity__Defaultfor editable properties
- Detail
- Screen (modal) or headless (
@api invoke()); record pages in Lightning Experience only
- Detail
- Text variable
recordId, Available for input, for "Pass record ID"
- Detail
inputOnly,outputOnly, or both by default
- Detail
standard__objectPage,actionName: 'new',state.defaultFieldValues
- Detail
- One
ApexPages.StandardController(or custom controller) argument
- Detail
- Leftmost extension's method overrides the same-named one
- Detail
- 10,000 records; query locator over that throws
LimitException
- Detail
- Aura can contain LWC; LWC can't contain Aura
Sources for this section (11)
- XML Configuration File Elementsdeveloper.salesforce.com (opens in a new tab)
- Lightning App Builder configdeveloper.salesforce.com (opens in a new tab)
- Record Contextdeveloper.salesforce.com (opens in a new tab)
- Experience Builder configdeveloper.salesforce.com (opens in a new tab)
- Quick Actionsdeveloper.salesforce.com (opens in a new tab)
- Embed a Screen Flowhelp.salesforce.com (opens in a new tab)
- Flow Screens configdeveloper.salesforce.com (opens in a new tab)
- PageReference Typesdeveloper.salesforce.com (opens in a new tab)
- Building a Controller Extensiondeveloper.salesforce.com (opens in a new tab)
- StandardSetController Classdeveloper.salesforce.com (opens in a new tab)
- Aura Coexistencedeveloper.salesforce.com (opens in a new tab)
- Why does a component with `lightning__RecordPage` listed still not appear in Lightning App Builder?
- When is Visualforce still the right choice for new work?
- Which flow variable does the Flow component fill with the current record's Id on a record page?
- Why can a screen quick action's `recordId` be undefined in `connectedCallback()`?
The questions are free to read. Answers with their sources and self-grading are included with the pack.
Keep reading with the Platform Developer pack
- Core concepts
- Exam traps
- Worked scenario
The pack includes:
- All 21 lessons of the Platform Developer guide, with reading progress
- Interactive decision walks and step-by-step sequence steppers
- Inline practice questions and one-click topic practice (18 questions for this lesson)
- An official source cited for every claim
- An AI tutor that answers from the guide
- Unlimited timed practice exams