Socket
Socket
Sign inDemoInstall

reactflux

Package Overview
Dependencies
0
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    reactflux

The base classes for Facebook react/flux.


Version published
Weekly downloads
1
decreased by-50%
Maintainers
1
Install size
1.81 MB
Created
Weekly downloads
 

Readme

Source

reactflux

What is reactflux

The base classes for Facebook react/flux.

Install

npm install --save-dev reactflux

How to use

Check sample TODO application.

Component

You must implement initStore method.

import React from 'react';
import ReactFlux from 'reactflux';
import TodoStore from '../stores/Todo';

export default class Todo extends ReactFlux.BaseComponent
{
  constructor(props) {
    super(props);
  }

  initStore(){
    return TodoStore;
  }

Store

The second argument of constructor is inital state object.

import Dispatcher from '../AppDispatcher';
import ReactFlux from 'reactflux';

class TodoStore extends ReactFlux.BaseStore
{
  constructor() {
    super(Dispatcher, {

    });
  }

Use facebook flux dispatcher for ../AppDispatcher.es6.

You can get the initial state by getInitialState method, and reset to the initial state using clearState method.

import Flux from 'flux';

export default new Flux.Dispatcher();

Actions

import Dispatcher from '../AppDispatcher';
import ReactFlux from 'reactflux';
import TodoConst from '../constants/TodoConstants';

class TodoActions extends ReactFlux.BaseActions
{
  constructor() {
    super(Dispatcher);
  }

  updateTitle(value){
    this.dispatch(TodoConst.ActionTypes.BIND_TODO_TITLE, {title: value});
  }
}

export default new TodoActions()

TodoActions.dispatch return Promise object. You can chain store change events.

doSomething(){
  this.dispatch(TodoConst.ActionTypes.OPERATION_1)
    .then(() => this.dispatch(TodoConst.ActionTypes.OPERATION_2))
    .then(() => {
      return new Promise(resolve => {
        $.ajax({url: '/ajax/update'}).done(() => {
          this.dispatch(TodoConst.ActionTypes.OPERATION_AJAX).then(() => resolve());
        });
      });
    })
    .then(() => this.dispatch(TodoConst.ActionTypes.OPERATION_3));
}

reactflux require global Promise object. If you want to use on browsers that lack the Promise, check out the polyfill.

Constants

For make constants object, use ReactFlux.handlers().

import ReactFlux from 'reactflux';

export default{
  ActionTypes: ReactFlux.handlers([
    "BIND_TODO_TITLE"
  ])
};

This make object like this:

{"BIND_TODO_TITLE": "handleBindTodoTitle"}

If you make handleBindTodoTitle method in a store class, the store handle this event.

import Dispatcher from '../AppDispatcher';
import ReactFlux from 'reactflux';

class TodoStore extends ReactFlux.BaseStore
{
  constructor() {
    super(Dispatcher, {
      'title': ''
    });
  }

  handleBindTodoTitle(payload){
    var title = payload.data.title;
    this.setState({'title', title});
  }

handler... method emit the state change event automatically. If you want cancel that, return false.

FAQs

Last updated on 27 Jun 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc