Action based components
Switch branches/tags
greenkeeper/prettier-1.14.3 greenkeeper/prettier-1.15.0 greenkeeper/prettier-1.15.1 greenkeeper/prettier-1.15.2 greenkeeper/prettier-1.15.3 greenkeeper/ramda-0.26.0 greenkeeper/ramda-0.26.1 greenkeeper/semantic-release-15.9.15 greenkeeper/semantic-release-15.9.16 greenkeeper/semantic-release-15.9.17 greenkeeper/semantic-release-15.10.3 greenkeeper/semantic-release-15.10.4 greenkeeper/semantic-release-15.10.5 greenkeeper/semantic-release-15.10.6 greenkeeper/semantic-release-15.10.7 greenkeeper/semantic-release-15.10.8 greenkeeper/semantic-release-15.11.0 greenkeeper/semantic-release-15.12.0 greenkeeper/semantic-release-15.12.1 greenkeeper/semantic-release-15.12.2 greenkeeper/semantic-release-15.12.3 greenkeeper/semantic-release-15.12.4 greenkeeper/semantic-release-15.12.5 greenkeeper/semantic-release-15.13.0 greenkeeper/semantic-release-15.13.1 greenkeeper/travis-deploy-once-5.0.8 greenkeeper/travis-deploy-once-5.0.9 greenkeeper/travis-deploy-once-5.0.10 greenkeeper/travis-deploy-once-5.0.11 greenkeeper/@types/node-10.10.0 greenkeeper/@types/node-10.10.1 greenkeeper/@types/node-10.10.2 greenkeeper/@types/node-10.10.3 greenkeeper/@types/node-10.11.0 greenkeeper/@types/node-10.11.1 greenkeeper/@types/node-10.11.2 greenkeeper/@types/node-10.11.3 greenkeeper/@types/node-10.11.4 greenkeeper/@types/node-10.11.5 greenkeeper/@types/node-10.11.6 greenkeeper/@types/node-10.11.7 greenkeeper/@types/node-10.12.0 greenkeeper/@types/node-10.12.1 greenkeeper/@types/node-10.12.2 greenkeeper/@types/node-10.12.3 greenkeeper/@types/node-10.12.4 greenkeeper/@types/node-10.12.5 greenkeeper/@types/node-10.12.6 greenkeeper/@types/node-10.12.7 greenkeeper/@types/node-10.12.8 greenkeeper/@types/node-10.12.9 greenkeeper/@types/node-10.12.10 greenkeeper/@types/node-10.12.11 greenkeeper/@types/node-10.12.12 greenkeeper/@types/node-10.12.13 greenkeeper/@types/node-10.12.14 greenkeeper/@types/node-10.12.15 greenkeeper/@types/ramda-0.25.38 greenkeeper/@types/ramda-0.25.39 greenkeeper/@types/ramda-0.25.40 greenkeeper/@types/ramda-0.25.44 greenkeeper/@types/ramda-0.26.0 master
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
test
.gitignore
.npmignore
.prettierrc
.travis.yml
README.md
index.ts
package.json
tsconfig.json
yarn.lock

README.md

Action Component

Greenkeeper badge Build Status

Action based functional components

Component

A component is set of 4 pure functions —

  1. init: Creates the initial state of the component.
  2. update: Is a reducer function.
  3. command: Is a command function.
  4. view: Takes in the state and other params and returns a virtual dom element.
  5. Components are framework agnostic.
export interface Component<State, Params, VNode> {
  init(p?: Partial<State>): State
  update<T>(action: Action<T>, state: State): State
  command<T, R>(action: Action<T>, state: State): Action<R>
  view(e: Hoe, m: State, p: Params): VNode
}

init()

  1. Takes in one argument which contains a partial version of the State, ie. all properties are optional.
  2. Returns a new version of the State.
function init(p?: Partial<State>): State

update()

  1. Its an [update function] that takes in an Action and a State and returns a new State.
 function update (action: Action, state: State): State

command()

  1. Its an command function that takes in an Action and a State and returns a new Action.
 function command (action: Action, state: State): Action

view()

  1. Takes in three arguments — Hoe, State and Params.
  2. Returns a new virtual dom element — VNode.
  3. VNode can be anything implementation from [React], [snabbdom] etc.
function view(e: Hoe, s: State, p: Params): VNode