node package manager

lazo-todo-mvc

Lazo TodoMVC

Lazojs TodoMVC Example

Lazo is a full stack client-server web framework based on Backbone, Requirejs, and Handlebars (default template engine; you can use whatever template engine you like :)).

The name is derived from the Spanish word LAZO which means link.

The goal of Lazo is to provide a ‘link’ between the client and server for application views, models, and business logic allowing developer to create complex applications with ease.

  • Lazo gives the front-end engineer 100% control over the UI layer.
  • Lazo is 100% SEO compliant.
  • Lazo has an optmized time to render.
  • Lazo is being used to power the internal business tools @WalmartLabs.

!important If You Read Anything Read this Section

Please note that these examples are written within the context of TodoMVC and certain aspects of the implementations would not be the same outside of this context. For example, when filtering the todo list one would likely send back up the filtered subset of data as opposed to the entire result set. The latter approach was taken so that these examples would be easier to compare to other library and framework examples.

Three different implementations are included:

  • components/todos-single: This is TodoMVC in its most basic form. It is one component that renders the entire screen.
  • components/todos-multiple: This example illustrates how to break up a page into reusable components. It consists of a parent component, components/todos-multiple, and three child components - components/header, components/main, components/footer.
  • components/todos-layout: This example further expands upon the reusable components concept and intrdocues a new concept, layouts. A layout is a component that contains a component container with the reserved value "lazo-layout-body". The layout component is associated to route as a property in addition to the component property (see app/app.json). The component associated with the route in question is rendered in the "lazo-layout-body" component container. If an executed route handler references the last layout rendered then only the "lazo-layout-body" component is rendered on the client. An application can aslo specify a default layout outside of the route definitions.
  • components/hello: This is strictly used to visualize the concept of a layout.

Getting started

To install Lazo execute the following command:

npm install -g --production lazo

Next clone Lazo TodoMVC example:

git clone git@github.com:jstrimpel/lazojs-todomvc.git

Finally start the new application:

lazo start lazojs-todomvc

You are done.

Open http://localhost:8080 in a browser to verify that the application is running.

Questions

Great. We are glad this has peaked your interest.

There is alot going on behind the scenes that is not covered in this example.

Please direct any questions to Jason Strimpel, jstrimpel@walmartlabs.