react-trim

5.6.1 • Public • Published

React Trim

cover

Combine React and Redux and you get React Trim. Create powerful front-end applications with less code and better architecture.

Wait until you see the code reduction

React Trim CLI

To install react-trim-cli run:

npm i react-trim-cli -g

Installation

To install react-trim directly into your project run:

npm i react-trim -S

Loaders

The following loaders are used to reduce code in your application. The react-trim-cli comes configured and ready for using loaders with the following fiel extensions.

Container Loader: .jsc Store Loader: .jss Component Loader: .jscp

JavaScript Component Loader

This is a webpack loader using react-templates. The syntax is much more flexible allowing for javascript code within the template for easier syntax and better code highlighting. It also contains custom code definitions and alias to react-templates (ex. rt-for alias to rt-repeat).

webpack.config.js

{
  test: /\.jscp$/,
  include: paths.appSrc,
  use: [
    {
      loader: "babel-loader",
      options: {
        // This is a feature of `babel-loader` for webpack (not Babel itself).
        // It enables caching results in ./node_modules/.cache/babel-loader/
        // directory for faster rebuilds.
        cacheDirectory: true
        }
    },
    {
      loader: "react-trim/loader/component",
      options: { modules: "es6" }
    }
  ]
}

JavaScript Store Loader

The following loader allows for creating Redux stores in a more concise way. Class methods are used to define redux cases, actions, and dispatchers. The package also adds more features such as defining helper methods, getters, state observers, and more.

webpack.config.dev.js

{
  test: /\.jss$/,
  include: paths.appSrc,
  use: [{
    loader: "babel-loader",
    options: {
      // This is a feature of `babel-loader` for webpack (not Babel itself).
      // It enables caching results in ./node_modules/.cache/babel-loader/
      // directory for faster rebuilds.
      cacheDirectory: true
    }
  },
  "react-trim/loader/store"
 ]
}

webpack.config.prod.js

{
  test: /\.jss$/,
  include: paths.appSrc,
  use: [
    {
        loader: 'babel-loader',
        options: {
            compact: true,
        },
    },
    'react-trim/loader/store',
  ]
}

JavaScript Container Loader

The following loader allows for creating React/Redux Components in a more concise way. Compontents are stripped of tedious repetitive code in a typical React/Redux project. Classes are wrapped around React and connected to Redux Store and a React Template View automatically given a React Trim Store and React Trim Component.

webpack.config.dev.js

{
  test: /\.jsc$/,
  include: paths.appSrc,
  use: [
    {
      "babel-loader",
      options: {
          // This is a feature of `babel-loader` for webpack (not Babel itself).
          // It enables caching results in ./node_modules/.cache/babel-loader/
          // directory for faster rebuilds.
          cacheDirectory: true
      }
    },
    "react-trim/loader/container"
  ]
}

webpack.config.prod.js

{
  test: /\.jsc$/,
  include: paths.appSrc,
  use: [
    {
        loader: 'babel-loader',
        options: {
            compact: true,
        },
    },
    'react-trim/loader/container'
  ]
}

Documentation

The application template is fully documented and contains simple and advance example use cases. You will note the /containers/Example folder contain javascript without the use of any loaders. The rest of the folders utilities the loaders that are used along with react-trim.

You can open the inspector in your browser and navigate to the sources path then open the file name while in development mode to see the generated file when using the loader.

Container

Containers are the entry point to stateful components. It couples the Store and Component layers together on entry. They are also capable of binding mutliple Components to the Container which can be references form within the Component layer using the Components object.

Containers are, also, meant to contain component related logic and state.

Store

The Store is an enhanced version of a redux store: it uses the redux store/reducer along with addition functionality. Essentially it manages its state within a class and then dispatches those changes to redux.

Stores are meant to contain business logic and a shared state accross mutliple Containers.

Component

The Component is only related to view: what the user can see. That is logic should be computed outside the view and passed to the view once completed. Some essential logic lives within the view such as for loops and if statements that are used as tag attributes.

<Tag @if={ condition } />
<Tag @for={ prop, index in object } />

Readme

Keywords

Package Sidebar

Install

npm i react-trim

Weekly Downloads

2

Version

5.6.1

License

ISC

Unpacked Size

364 kB

Total Files

12

Last publish

Collaborators

  • abubakir1997
  • esezen