
Product
Socket for Jira Is Now Available
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.
react-trim
Advanced tools

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
To install react-trim-cli run:
npm i react-trim-cli -g
To install react-trim directly into your project run:
npm i react-trim -S
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
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" }
}
]
}
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',
]
}
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'
]
}
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.
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.
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.
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 } />
FAQs
MVC/Flux React and Redux Library with additional power.
The npm package react-trim receives a total of 6 weekly downloads. As such, react-trim popularity was classified as not popular.
We found that react-trim demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
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.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.