Popular questions

Why should i use Akili?

  • it is very easy to learn, use and test
  • it does not require any additional dependencies
  • it can be used without javascript compilation in all modern browsers
  • it is a pure, lightweight, expandable and powerful framework
  • it is javascript way, without magic

What is the main idea?

  • using component-based model of building an application
  • the component is a smart and powerful extension over the html element
  • the component's scope is separated from its template's scope
  • the component has inheritance and encapsulation capability
  • the сomponents can interact with each other
  • there is a store to save and distribute data between the components
  • there are routing and ajax requests to fully implement a single page application

How can i replace/extend some system component with my own?

import Akili from 'akili';
import Input from 'akili/src/components/input';

class MyInput extends Input {
  compiled() {
    super.compiled.apply(this, arguments);
    this.myOwnMethod();
  }

  myOwnMethod() {
    // do something
  }
}

MyInput.define();

document.addEventListener('DOMContentLoaded', () => {
  Akili.init().catch((err) => console.error(err));
});

How can I access one component in another?

Use communication methods between the components.

How do I transfer data between components?

Use store to save and distribute data.

How can I get the routing data in my component?

There are several ways to do it:

  • router.transition.path
  • router.transition.states
  • component.scope.__transition

How can I attach my component to a specific element, but not by tag?

You can use aliases.

Does the framework support server-side rendering?

Yes and no. Akili is not isomorphic, but we made akili-connect library for nodejs which can do it.

How can i write my own library for the framework?

Look at here.

Is this site written using Akili?

Sure =)

How can i help the project?

  • create some cool application via the framework, like this =)
  • tell your friends about it
  • offer new interesting ideas
  • give feedback about bugs
  • support financially