@diax-js/context v0.3.0
@diax-js/context
This package is core for all functionalities implemented by @diax-js. The main idea of this package is to provide implementation of Context and helper functions to work with it.
How to use
Type in your terminal:
npm i @diax-js/context
Basic usage of context:
const context = ...;
useContext(context, () => {...});But for diax-js better is use functions like useDocument, useElement.
These functions are using context attached to diax-js elements.
useDocument(() => {...});
useElement(element, () => {...});Context concept
Context is an entity that shall be pass as free variable trough synchronous functions call stack.
For instance, when function f() is invoked, it builds a call stack:
f -> g -> h -> ... -> nNatural method for passing data from outermost function f to the bottom function n is trough function arguments.
Sometimes data relevant for function n are irrelevant for function g, h and so on.
Therefore, idea of the Context is to create object that is accessible for all functions from f to n.
The visualization of this concept is code below.
function f() {
const context = getCurrentContext();
context.hello = "Hello";
g();
}
function g() {
const context = getCurrentContext();
console.log(context.hello);
}
useContext(context, () => {
f(); // will log "Hello" in the console.
})@diax-js usage of context
The @diax-js is designed to build web components. To support base concepts such as dependency injection system or signal data processing, diax is using Context.