sp-front
front
A fast javascript object based front-end framework with zero dependency
##example
in your index.html or any html file add a module type script file (for example main.js)
you can specify element while initializing front or it will use body as default element
main.js
import Front from 'front.js'
let front = new Front();
let app = {
tag: 'div',
children: [
{
tag: 'h2',
text: 'hello world',
style: {
color: 'tomato',
}
},
{
tag: 'p',
innerHTML: 'Welcome to <em>Front<em>.'
}
]
};
front.render(app);
default ui structure
ui = {
tag: 'div',
id: 0,
text: 'text content',
style: {
color: 'red',
}
}
basic options: of ui:
tag: string
id: number/string
text / textContent : string
style: object // css styles {key: value}
classes: string/array // class names
listeners: object // {event: function}
innerHTML: string // html code
styleSheets: array // [cssStyleSheet]
data: object // {key: value}
animations: object // {name: {frames: [], opts: {}}}
derived options added to ui by front:
animationTable: object // {name: Animation}
elem: HTMLElement
parent: ui
children: array // [ui]
killMe: boolean
optional mods for children of ui:
type : router/ lazy / page
router children special options:
pattern : string/ regularexp to match url pathname
autiontication: bool/ bool function - should be authenticated to access this page
lazy children special options:
batch : number // number of children to render at once
offset: number // number of children to skip
next: function // function to call when next batch is needed to rendered
page(pagination) children special options:
batch : number // number of children to render at once
page : number // page number
next : function // function to call when next page is needed to rendered
prev : function // function to call when prev page is needed to rendered
paginate(i): function // function to call when ith page is needed to rendered
special listeners:
init: function // called when ui is created
create: function // called when ui is created , after init
beforeUpdate: function // called before ui is updated
afterUpdate: function // called after ui is updated
beforeRender: function // called before ui is rendered
afterRender: function // called after ui is rendered
intersection: function // called when ui is intersected with viewport
mutation: function // called when ui is mutated
resize: function // called when ui is resized
special ui component:
Link(path, content, delay = 0, preJumpFunc = undefined)
cross component data access:
DataEntry
-write(key, value)
-read(key)
-save(key)
-load(key)
-listen(key, callback)
-setCookie(key, value, expiry)
-getCookie(key)
-deleteCookie(key)
lifecycle methods of ui:
update: function
kill: function
push: function
pop: function
getElement: function
selectors: function