当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

rematch

The Redux Framework
授权协议 MIT License
开发语言 JavaScript
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 汲涵育
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Rematchjs

Rematch is Redux best practices without the boilerplate. No more action types, action creators, switch statements or thunks in less than 1.4 kilobytes.


Rematch CI

Documentation · Quickstart · Examples · Contribute · Licence

Features

Redux is an amazing state management tool, supported by a healthy middleware ecosystem and excellent devtools.Rematch builds upon Redux by reducing boilerplate and enforcing best practices. It provides the following features:

  • No configuration needed
  • Reduces Redux boilerplate
  • Built-in side-effects support
  • React Devtools support
  • TypeScript support
  • Supports dynamically adding reducers
  • Supports hot-reloading
  • Allows to create multiple stores
  • Supports React Native
  • Extendable with plugins
  • Many plugins available out of the box:

Are you ready to use Rematch?

In a few lines you can get easily asynchronous calls to an external API and data stored globally. It's amazing, with Redux you will needs tons of boilerplate, libraries and extra configuration.

type PlayersState = {
    players: PlayerModel[]
}

export const players = createModel<RootModel>()({
    state: {
        players: [],
    } as PlayersState,
    reducers: {
        SET_PLAYERS: (state: PlayersState, players: PlayerModel[]) => {
            return {
                ...state,
                players,
            }
        },
    },
    effects: (dispatch) => {
        const { players } = dispatch
        return {
            async getPlayers(): Promise<any> {
                let response = await fetch('https://www.balldontlie.io/api/v1/players')
                let { data }: { data: PlayerModel[] } = await response.json()
                players.SET_PLAYERS(data)
            },
        }
    },
})

Check it out, right now!

Redux vs Rematch

Redux Rematch
simple setup ‎
less boilerplate
readability
configurable
redux devtools
generated action creators
async thunks ‎async/await

Migrate From Redux

Migrating from Redux to Rematch may only involve minor changes to your state management, and no necessary changes to your view logic. See the migration reference for the details.

Composable Plugins

Rematch and its internals are all built upon a plugin pipeline. As a result, developers can make complex custom plugins that modify the setup or add data models, often without requiring any changes to Rematch itself. See the plugins developed by the Rematch team or the API for creating plugins.

Contact & Support

Contributors

Thank you to all the people who have already contributed to rematch!

Made with contributors-img.

Licence

This project is licensed under the MIT license.

  • 前言 状态管理: redux:操作都是同步的,异步action 需要使用插件 rematch:基于 redux 的状态管理库 useReducer:使用 React Hook 的简单状态管理 其他:unstated-next:使用 react API 的状态管理库; 代码:react-test 前面几篇笔记: react学习笔记一:路由及懒加载 react学习笔记二:css module Reac

  • rematch是对redux的二次封装,简化了redux是使用,极大的提高了开发体验。rematch仅仅是对redux的封装,没有依赖redux-saga,也没有关联react,因此其可以用在其他的视图库中,如vue等。 1. rematch的优点 1.省略了action types 不必再多次写字符串,使用model/method代替 2.省略了action creators 直接调用方法,不必

  • 插件系统 rematch实现了一个插件系统,内置了dispatch和effects两个插件,分别用来增强dispatch和处理异步操作。rematch的插件,要符合rematch的要求,每个插件返回一个对象,这个对象可以包含几个属性,用来在不同的生命周期中对store进行操作。 对于每一个插件对象,提供了如下几个属性进行配置。 onInit:进行插件的初始化工作 config: 对rematch进

  • 偶然间发现了这个东西, 可以获取捕获组。 如: [root@localhost ~]# [[ '123,456,abc,000' =~ ([0-9]+) ]] [root@localhost ~]# echo ${BASH_REMATCH[1]} 123 可以看到, 只输出了一个匹配, 理论上来说共有3个。 要输出所有的, 可以这样(来自: https://unix.stackexchange.

  • import {init,dispatch} from 'rematch/core';   const count = { state:{ number:0 }, reducers:{//一个改变该model state的所有函数的对象 increments:(state,payload) => state.number + payload, decrements:(state,payload)

  • 先引用一段资料,出自:http://bbs.chinaunix.net/thread-4125147-1-1.html 红色注释为个人添加 --------------------------------------------------------------搬运内容分割线-------------------------------------------------------------

  • def match(pattern, string, flags=0): """Try to apply the pattern at the start of the string, returning a match object, or None if no match was found.""" return _compile(pattern, flags).mat

  • 前言 re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配,可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式 一、re.match正则匹配 语法: re.match(pattern, string, flags=0) 函数参数说明: pattern 匹配的正则表达式 s

  • 1. re模块的使用过程 #coding=utf-8 # 导入re模块 import re # 使用match方法进行匹配操作 result = re.match(正则表达式,要匹配的字符串) # 如果上一步匹配到数据的话,可以使用group方法来提取数据 result.group() 2. re模块示例(匹配以itcast开头的语句)

  • 正则表达式—re.match方法 导入模块import re match()从左往右,从起始部分开始匹配 1.单字符匹配打印----match()方法,group()方法 text = 'python' reslut = re.match('py', text) # 结果存储在一个Object对象里,使用group打印 print(reslut.group()) # 2.'.'匹配任意字符,但无

  • Shell之${BASH_REMATCH[N]} 双目运算符=~它和==以及!=具有同样的优先级。如果使用了它,则其右边的字符串就被认为是一个扩展的正则表达式来匹配。如果字符串和模式匹配,则返回值是0,否则返回1。如果这个正则表达式有语法错误,则整个条件表达式的返回值是2。如果打开了shell的nocasematch 选项则匹配时不考虑字母的大小写。模式的任何部分都可以被引用以强制把其当作字符串来

  • re.match与re.search的区别 re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回 None,而 re.search 匹配整个字符串,直到找到一个匹配。

相关阅读

相关文章

相关问答

相关文档