Another JS Framework

I started working on Sweet.js about a month ago. It is inspired by Backbone.js. Sweet.js supports HTML5 states, so that you don’t have to go through work arounds like these. Sweet.js is not a MVC framework, but it has a views similar to Backbone.js, which supports inheritance without affecting events and initializations of super classes. And it’s written in Coffeescript.

Router #

class Router extends Sweet.Router
 @routes #You can add more routes from sub classes
  '': 'home'
  'search/:what': 'results'

 home: ->
  View.home()

 results: (what) ->
  console.log @getState() #state
  View.results(what)

router = new Router()
router.start pushState: true

#Emulate browser back button
router.back()

#Whether we can go back without leaving the web app
router.canBack()

Views #

A generic form class.

class Form extends Sweet.View
 @events
  'click .cancel': 'cancel'
  'click .submit': 'submit'

 @initialize (options) ->
  @model = options.model

cancel: (e) ->
 router.back()

A registration form class.

class RegistrationForm extends Sweet.View
 #Register new events without affecting events registered in Form class
 @events
  'click .checkUsername': checkUsername

 #Both initialization functions (Form, RegistrationForm) will be called.
 @initialize (options) ->
  @userType = options.userType

 submit: (e) ->
  #Submit form

 checkUsername: (e) ->
  #Check availability

This is a very basic library and it will not suit you if you are looking for a MVC. I’m using this in some of my projects, so I will be maintaining it.

I’m planning to remove the dependency on jQuery and use vanilla javascript.

Discuss on Hacker News #

 
62
Kudos
 
62
Kudos

Now read this

Bye bye jQuery Mobile

jQuery Mobile lets you create slick mobile web applications, and that’s what we did with nearby.lk. However, when we wanted to add more content and customize it heavily, jQuery Mobile stood in our way. So we decided to move away from it.... Continue →