LemonadeJS methods


In this section, we delve into LemonadeJS' core and sugar methods, which are pivotal for component creation and inter-component communication.

Core functions

The core methods are instrumental in crafting, declaring, and presenting elements within the DOM.

Method Description
element(string, object, object) Generates DOM elements from an HTML string and binds them to a self object. Syntax: lemonade.element(template: String, self: Object, components: Object) => DOMElement
render(DOMElement, DOMElement, object?) Attaches LemonadeJS components to a specified DOM root. Syntax: lemonade.render(component: Function, root: HTMLElement, self?: object, template?: HTMLElement) => DOMElement
apply(DOMElement, object, object) Associates a 'self' scope with an existing DOM element. Syntax: lemonade.apply(root: HTMLElement, self: Object, components: Object) => void
setComponents(object) Includes component references for global application use. Syntax: lemonade.setComponents(components: object) => void
path(string, boolean) Extract the value from an object based on a address. Syntax: lemonade.path(str: string, config: boolean) => any
createWebComponent(string, Function, object) Includes component references for global application use. Syntax: lemonade.createWebComponent(name: string, handler: Function, options: WebComponentOptions) => void

Sugar functions

The sugar methods facilitate seamless communication across various components. These methods provide the foundation and communication channels necessary for creating dynamic and interactive web components with LemonadeJS.

Method Description
set(string, self, persistence) Shares a 'self' or a data dispatcher within the Sugar common container for component-wide access. Syntax: lemonade.set(alias: String, self: Object, persistence?: Boolean) => void
get(string) Retrieves a 'self' reference from the Sugar container. Syntax: `lemonade.get(alias: String) => Object
dispatch(string, data) Initiates a data dispatcher. Syntax: lemonade.dispatch(alias: String, data: Object) => void


Lemonade apply to existing HTML

This example demonstrates how to integrate LemonadeJS into an existing HTML structure by binding a 'self' object to the DOM. If you have a pre-existing block of HTML you'd like to manage with LemonadeJS, you can apply a 'self' object to it. The following example shows how to bind a simple 'self' to a DOM element. That is a basic illustration intended for educational purposes, and it's recommended that more sophisticated scope encapsulation be implemented in production.

<script src="https://lemonadejs.net/v4/lemonade.js"></script>

<div id='root'>
    <input type="button" value="Update"
        onclick="self.title = 'New title'" />

// Apply the self object to an existing HTML element already in the DOM
let self = {};
self.title = 'Hello world';
lemonade.apply(document.getElementById('root'), self);

Creating a component

In the most common applications you can use lemonade.render to render elements to the DOM and lemonade.setComponents to declare components across the application.


Next chapter: Native lemonade JavaScript events