/brixjs

BrixJS - Lightweight, simple, but pretty powerful addition to Marionette.js framework, that helps you to build bookmarkable singlepage JS Apps

Primary LanguageJavaScript

BrixJS

Make your Marionette.js apps scale and evolve infinitely

Build Status

About

BrixJS - Lightweight, simple, but pretty powerful addition to Marionette.js framework, that helps you to build multi-page JS Apps.

The idea of BrixJS is similar to the one implemented at Google Web Toolkit (GWT). "Places" are defined as bookmarkable states, and when a user comes to some place the corresponding "activity" is run. With Marionette layouts and views you define different regions. With BrixJs you manage these regions.

That's it!

You start with one main region and then step-by-step split it to several smaller. On each hierarchy-level you can switch underlying layout to something absolutely different depending on current place.

Benefits from using BrixJS:

  • application could be divided to several absolutely independent modules, so their development could be easily paralled
  • view regions are updated independently - some could be re-rendered, some could stay untouched, that leads to better UI-performance
  • infinite hierarchy of view regions and their managers

Just checkout this demo to get better understanding how it works - BrixJS Demo

Requirements

This framework extends and is based on

Boilerplate application is using:

Classes

Brix classes description

  • Place: Represent bookmarkable state
  • PlaceController: Responsible for navigation between places and keeps browser history in sync
  • Module: Basic interface for Modules
  • Activity: Activity class
  • SimpleActivity: Helper activity class, that just renders some view
  • ActivityManager: Starts/Stops activity in response to place change events
  • DelegateManager: Allows to switch between managers for single region
  • CompositeManager: Creates Marionette.Layout and associate managers with regions

Boilerplate application

BrixJS Boilerplate application is available here - BrixJS Demo Online version is built with RequireJS optimizer.

To run and debug non-built application locally (it uses NodeJS):

npm run-script dev

or

node dev-boilerplate.js

and open http://localhost:3000/

Copyright (MIT License)

Copyright (c) 2013 Denis Davydkov