Fundamentals of Web Components
What you'll learn
- Web Components API
- Create your own custom elements, use them in html like the built in elements
- Use templates to create the structure of your elements
- Use shadow dom to encapsulate your element
- Use slot for composing your custom elements with different elements
- Create custom events
Requirements
- Familiarity with basic dom manipulation with javascript
Description
Web applications are evolving and frameworks like react, vue, angular, svelte and others, are bringing functionalities like reusable components to make it easier to create huge applications. With web components we can create our custom html elements, just like we do in the other popular web frameworks. But the difference is, web components api is web standard, which means it's coming with the modern browsers. So without requiring additional build process or any other tooling, we can run our code as it is in the browser. All we need is just vanilla javascript knowledge.
Web components has three main APIs. Custom Elements, Shadow DOM and HTML Templates. And in this course we will learn and practice all.
We will learn how we can built custom elements, how we can extend built-in elements. Also we will practice the "template" to make the rendering of our custom element more efficiently.
We are going to practice the Shadow Dom to see it's role in web components. We will see how we can compose our custom element with the markup provided externally. And also we will see our styling options of our elements.
And finally, we will practice, how the events are changed in shadow dom. We will see the issues and we will introduce our solutions.
If you want to build re usable web components without relying onto a third party library, if you want to build applications based on the web standards, then web components is the answer.
Who this course is for:
- Developers who wants to build web clients with web standards.
- Developers who wants to build applications without needing 3rd party library and framework.
Instructor
I have experience on
• Java / Java EE specifications JAX-RS (Jersey), JPA (Hibernate)
• Spring Framework (Spring Boot, Security, Data)
• Spring Cloud components & microservices frameworks, messaging bus (RabbitMQ)
• JavaScript (ES6, TypeScript) / Node JS (Express.js) and frontend JS Frameworks (React (and Redux), Vue, Angular, Svelte)
• Testing frameworks (For Java pojects JUnit, Mockito, AssertJ, Cucumber / for Javascript projects Jest, Vitest, and Testing Library (for React, Svelte, Vue, Angular))
I've been teaching Spring Boot, React and Test Driven Development to newly graduate engineers and interns either in class environment or one on one.