@twilson63/oak

1.1.1 • Public • Published

Oak

A solid community managed front-end focused composition of libraries.

Oak takes reliable community managed libraries and composes them together to simply make it easier to get started with build your component architected application.

libraries

  • virtual-dom
  • redux
  • hyperscript (helpers)
  • main-loop

Getting Started

The purpose of this module is to make it very easy to get started building component architected front-end applications.

npm i @twilson63/oak -S
touch src/app.js

app.js

import createApp from '@twilson63/oak'
import { reducers, render, target } from './components'

const store = createApp({ reducers, render, target })

Component Structure

A component simply consists of two functions:

  • reducer
  • render

The reducer function takes two parameters and should return the new state.

  • state
  • action

The state argument will contain the previous state for this component and the action will contain an object with a type attribute and another attributes to help.

The render function, is responsible for returning vDOM nodes to be rendered in the virtual-dom library.

Helper Methods

hh

hh can be used in your component to use hyperscript helpers in your view or render functions.

Example

import hh from 'oak/hh'

const { div, h1 } = hh

const reducer = (state = {}, action) => state

const render = state =>
  div([
    h1('Hello World')
  ])

export { effects, reducer, render }

Recommended Effects Helpers

Using most, linchpin, and page work will with this collection of libraries.

  • most for dom event streams
  • linchpin for single event emitter
  • page for router

This libraries bring in effects from the outside either via route management, server events, or dom events, using these in your effects section can simplify your process.

Thank you

  • virtual-dom
  • hyperscript
  • hyperscript-helpers
  • main-loop
  • redux

Readme

Keywords

none

Package Sidebar

Install

npm i @twilson63/oak

Weekly Downloads

0

Version

1.1.1

License

ISC

Last publish

Collaborators

  • twilson63