React is a great front-end development tool for building single-page applications (SPA). UI5 Web Components for React provides a SAP Fiori-compliant React implementation by leveraging the UI5 web components.
SAP Fiori provides a consistent and holistic user experience for SAP software. By creating visually pleasing designs with a strong focus on ease of use, the experience is intuitive and simple, across all devices.
This first tutorial will start by creating a React application that is able to consume UI5 Web Components for React.
Step 1Bootstrap the app with the Vite template
โ
UI5 Web Components for React provides various templates for starting your project. In this tutorial, we’ll use the Vite template.
Navigate to a folder where you want to create your Web App and open a terminal there. Then use the following command:
Shell
npx degit UI5/webcomponents-react/templates/vite-ts#main my-app
cd my-app
npm i
These commands sets up a Vite project, creating a React Application with TypeScript and incorporating all essential dependencies for UI5 Web Components for React.
Why TypeScript?
TypeScript, a superset of JavaScript and brings a lot of advantages for developers:
Easy Debugging: Helps catch errors early.
Code Guidance: Provides hints for better coding.
Tool Support: Offers autocompletion and navigation in editors.
Readability: Enhances code clarity with static typing.
Gradual Adoption: Can be added to existing JavaScript projects.
Step 2Create your new root component
+
Open the current directory with an editor of your choice (e.g. Visual Studio Code).
Inside your project folder, navigate to src. There, create a new file and name it MyApp.tsx.
Now, add the following lines of code to MyApp.tsx.
This is a very simple component, but it already shows you the basic structure of all components. The file starts with the import statements in the first few lines. Then, the component will be defined as a function (React docs) in PascalCase notation. This function starts the definitions of the props and the logic, we’ll add them in a later tutorial, and ends by returning JSX or HTML components in a return statement.
With this you created your first React component. To actually render the component you will have to add it to your src/App.tsx.
Step 3Embed your new component
+
In App.tsx remove everything except for the React.Fragment (<></>) and the App component itself.
TypeScript
functionApp() {return(<></>);}exportdefaultApp;
Import your created component.
TypeScript
import{MyApp}from"./MyApp";
Add the component to the return value of App().
TypeScript
functionApp() {return(<><MyApp/></>);}
Note that <MyApp /> is using a self-closing syntax and is equivalent to <MyApp></MyApp>. All tags in JSX must be closed explicitly, this applies to HTML tags (like img) and custom JSX tags. Here you can find out more about JSX in general.
Open main.tsx. This is your entry file, let’s take a look at the content in more detail.
Assets.js': This includes assets like translation files (CLDR), theming, etc. of the required packages.
ThemeProvider: Inter alia, this provider makes your app react to theme and language changes and injects the CSS of used components.
StrictMode: The React StrictMode component enables additional development behaviors and warnings for the component tree inside. It is not required, but using it helps find common pitfalls and bugs in development. You can find out more about it here.
createRoot: This function lets you create the React root to display React components inside a browser DOM node (React docs). You will usually add this DOM node inside the index.html file.
App: A React component.
index.css: Global CSS file.
Step 4Launch the app to start developing
+
Now you can start the app in development mode. Execute the following command from the root directory of the project.
Share feedback on this tutorial or join the conversation in SAP Community.
Submit detailed feedbackDiscuss in Community
Steps
Step 1 of 4
1. Bootstrap the app with the Vite template2. Create your new root component3. Embed your new component4. Launch the app to start developing
Joule
AI Notice
Joule is an AI assistant. Generative AI may produce inaccurate, incomplete, or biased information. Always verify important details before acting on them.
Conversations are sent to SAP-hosted large language models for processing. Do not include personal data, credentials, or confidential information in your messages.
Joule's responses are based on the SAP tutorial catalog and may not reflect the latest product changes. For authoritative guidance, consult the linked tutorials and official SAP documentation.