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

kos-core

v2.7.4

Published

基于react-redux的可使用封装

Downloads

18

Readme

KOS

一款基于react-redux的数据流管理框架,简单轻量,目标是在多端体系下均能使用,与单页和多页方案无关,KOS配合脚手架生成的应用模板,来提供单页多页应用的使用场景

KOS

KOS.use(middleware)

  • 说明: 新增middleware
  • 参数:
  • middleware: redux中间件
  • 返回值:

KOS.start(App,Container='#main')

  • 说明: 启动应用,单页应用和多页应用均调用这个API
  • 参数:
  • App: React.Component
  • Container: React.Component渲染到的DOM节点,默认是id为main的节点
  • 说明: 用于启动一个应用程序

KOS.Provider(App)

  • 说明: 获取Provider包裹的高阶组件,并完成store的初始化等动作
  • 参数:
  • App: React.Component

KOS.wrapperProps(props)

  • 说明: 用于给Component注入初始化的props,使用在扩展场景,当前的Component会注入
{
  dispatch,
  getNamespace,
  getParam,
}
  • 参数:
  • props: Object,例如:
{
  getForm:(formName)=>{
   const namespace = this.getNamespace();
   return Form.getForm(namespace,formName);
  }
}

注意:此处的函数作用域指向是Component的this.props

KOS.Wrapper(config)(Component)

  • 说明: 将Component使用Wrapper组件进行包装后,挂在到connect下面,用户将Model和View进行包装
  • 参数:
  • config.model: 需要绑定的model,model说明详见 Model
  • config.autoLoad: 在执行到Wrapper的componentDidMount的时候,是否自动执行Model.setup方法
  • 返回值: 和Model结合之后的高阶组件
  • 特别说明: 在项目中,通常建议的使用方式是:
import React from 'react';
import KOS form 'kos-core';
import model from './model';

@KOS.Wrapper({model})
const class App extends React.Component({
  render(){
    return <div></div>
  }
})

KOS.registerModel(mode)

  • 说明: 注册model,KOS.Wrapper高阶组件会调用
  • 参数:
  • model: 需要注册的model
  • 返回值: 返回Model对象,注意:此处的Model对象非KOS.Wrapper({model}),时传入的model

KOS.getModel(namespace)

  • 说明: 根据namespace获取Model对象
  • 参数:
  • namepace:

Model

日常书写的Model包含如下概念:

  • namespace: 命名空间,不能重复,初始化时会作为key,将model的initial挂载到store的state下
  • initial: state初始化数据,建议层级不要太深
  • reducers: Redux的reducer合集,用于处理同步的action
  • asyncs: 异步合集,用于处理异步的action
  • setup: 初始化的action处理,异步处理

书写代码示例

export default {
  initial:{
    name:'',
    list:[],
    params:{}
  },
  reducers:{
    setList(state,action){
      const {list,name,params} = state;
      const {payload} = action;

      return {
        ...state,
        ...payload.list
      };
    }
  },
  asyncs:{
    async loadList(dispatch,getState,action){
      const state = getState();
      const {list,name,params} = state;

      
    }
  }
}

API说明