Web Component Technology

Web development technology for the component era


Web Components are independent and reusable bits of code. They serve the same purpose as JavaScript functions, but work in isolation.

Web components are a set of web platform APIs that enables creating new custom, reusable, encapsulated HTML tags to use in web pages and web apps. Custom components and widgets build on the Web Component standards, will work across modern browsers, and can be used with any JavaScript library or framework that works with HTML.

Web components are based on existing web standards. They enable web developers to extend HTML with new elements with encapsulated styling and custom behavior.

React

"React is for building user interfaces (UIs). It is an open-source, front end, JavaScript library created by Facebook.

React is a declarative, efficient, and flexible JavaScript library. It enables creating complex UIs from small and isolated pieces of code called “components”.

React code is made of entities called components. Components can be rendered to a particular element. A component is the core building block of a React application. Every component resides in the same space, but works independently from one another and merges all them in a parent component, which is the final UI of the application."

React JSX

The core development technology of Next.js and React is JavaScript. React has created JSX, a syntax extension to JavaScript. JSX is not part of the web programming languages troika. Browsers do not understand JSX. React created a compiler to transform JSX code into standard web programming language at build time.

JSX (JavaScript XML), is a React syntax extension to the JavaScript language. It is similar to a template language, but it has full power of JavaScript. It is similar in appearance to HTML, JSX provides a way to structure component rendering using syntax familiar to many developers. React components are written using JSX.

React embraces the fact that rendering logic is inherently coupled with other UI logic: how events are handled, how the state changes over time, and how the data is prepared for display.

Instead of artificially separating technologies by putting markup and logic in separate files, React separates concerns with cohesive components that contain both.

Markdown

Markdown is a faster way of creating and maintaining web site content. It is a HTLM abstraction that is compiled to web standard HTML

John Gruber published the original Markdown Syntax Guide. Different flavors of Markdown have evolved since then.

"Markdown is a better way to write HTML. It is compiled into HTML at deploy time. Markdown is a lightweight plaintext markup language used to add formatting elements to documents. Markdown is now one of the world’s popular markup languages. Using Markdown is different from using a WYSIWYG editor. In an application like Microsoft Word, you click buttons to format words and phrases, and the changes are visible immediately. Markdown is not like that. In a Markdown-formatted file. Markdown syntax is added to the text to indicate which words and phrases look different."

Markdown has been characterized by an informal specification and a reference implementation for conversion to HTML. Over time, many Markdown implementations have appeared. They are driven by the need for additional features like tables, footnotes, definition lists, and HTML inside Markdown blocks. The behavior of additional features diverge from the reference implementation and informal specification, and have attracted attention. Not all flavors of Markdown are compatible or supported by all frameworks.

MDX

I'm hesitant creating web site content without using a version of Markdown. My preference is using MDX.

MDX is Markdown for the component era. It enables writing JSX directly in Markdown documents. This enables writing content containing components like tables, footnotes, and writing your own components without creating another Markdown implementation.

❤️ Powerful: MDX blends markdown and JSX syntax to fit perfectly in React/JSX-based projects.

💻 Everything is a component: Use existing components inside MDX file and import other MDX files as plain components.

🔧 Customizable: Decide which component is rendered for each markdown element.

📚 Markdown-based: The simplicity and elegance of markdown remains, JSX is interleaved when you want to.

🔥 Blazingly blazing fast: MDX has no runtime, all compilation occurs during the build stage."

Next.js Development Environment