ReactoLite is a personal project designed to learn how to implement a React-like front-end framework with a focus on simplicity, performance, and extensibility. The repository is organized into three main modules:
-
Compiler (Not Implemented Yet):
- The compiler module is designed to convert JSX or a similar syntax into the runtime API of the framework. This component is yet to be implemented. All code examples provided in this repository are currently written using the API provided by the runtime package.
-
Runtime Package:
- The runtime package serves as the core of the framework, implementing a Virtual DOM to optimize Real DOM updates. It encompasses features such as state management, lifecycle methods, reconciliation algorithm, and component methods. The runtime package provides a robust foundation for building stateful components and efficiently managing the DOM tree. Future enhancements include the addition of keyed lists, subcomponents, lifecycle hooks, and a scheduler.
-
Loader Package (Not Implemented Yet):
- The loader package, although not implemented at the moment, is envisioned to handle dynamic loading and bundling of resources. This component will play a crucial role in optimizing the loading and execution of the framework.
This package has the following commands:
npm run serve:examples
- Starts an http server to serve the example applications