1.0.4 • Published 4 years ago

redux-saga-simple-use v1.0.4

Weekly downloads
2
License
ISC
Repository
github
Last release
4 years ago

学习redux-saga 版本1.0.0, 和版本1.0.1是测试npm发布,没啥作用

版本1.0.2功能正常,暂时未测试

参(chao)考(xi)了dva的代码,把dva的router去掉了,省略了一部分功能,

只是为了和next.js redux-saga一起使用,减少redux-saga的模板代码。

model中的user.js:

//  user store
const model = {
  namespace: 'user',
  state: {
    user: null
  },
  reducers: {
    updateState(state, { payload }) {
      return {
        ...state,
        ...payload
      };
    }
  },
  effects: {
    *getCity() {
      yield console.log('aaa');
    }
  }
};

export default model;

model中的index.js:

import user from './user';

export default [user];

next.js _app.js

import NextHead from 'next/head';
import { Provider } from 'react-redux';
import withRedux from 'next-redux-wrapper';
import withReduxSaga from 'next-redux-saga';
import initStore from 'redux-saga-simple-use';
import models from '../models';

import '~css/app.less';
import * as Layouts from '~layout/Index';

const createStore = initStore(models);
const EmptyLayout = ({ children }) => <>{children}</>;

const AppPage = props => {
  const { Component, pageProps, store } = props;
  const Layout = Layouts[Component.$layout] || EmptyLayout;
  return (
    <Provider store={store}>
      <NextHead>
        <title>welcome</title>
        <meta
          key="viewport"
          name="viewport"
          content="width=device-width,height=device-height,initial-scale=1,user-scalable=no"
        />
        <meta httpEquiv="X-UA-Compatible" content="IE=edge,chrome=1" />
        <link rel="shortcut icon" href="https://assets.smcdn.cn/from_qbox/favicon.ico" />
      </NextHead>
      <Layout>
        <Component {...pageProps} />
      </Layout>
    </Provider>
  );
};

export default withRedux(createStore)(withReduxSaga(AppPage));
1.0.2

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago