npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-trim

v5.6.1

Published

MVC/Flux React and Redux Library with additional power.

Downloads

327

Readme

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 } />