Git Product home page Git Product logo

heluxjs / helux Goto Github PK

View Code? Open in Web Editor NEW
1.3K 1.3K 69.0 23.64 MB

A reactive atomic state engine for React like.

Home Page: https://heluxjs.github.io/helux/

License: MIT License

JavaScript 3.94% Shell 0.04% TypeScript 96.02%
atom better-redux better-than-recoil concent dependency-collection fine-grained-responsive-updates helux high-performance immutable mutable proxy react reactive replace-recoil signal state state-management

helux's People

Contributors

daertommy avatar dependabot[bot] avatar fantasticsoul avatar pawover avatar timgates42 avatar zhangfisher avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

helux's Issues

componentDidUpdate 收不到参数

react 原型是:componentDidUpdate(prevProps, prevState, snapshot)

@register 之后 componentDidUpdate 调用收不到任何参数
我看了一下源码,好像确实 componentDidUpdate 没有把参数传递下来

Rebuild the project with Typescript.

I am a typescript user, but this library just uses JSDoc provide type safe.
So i open this issue.
I think rebuild is a good idea, it can not only help users who use TypeScript, but also make this project more convenient to maintain.
I will help you and find more people to help you (possible).

加油!

Vite 执行 build tsc 打包编译报错

node_modules/concent/src/types.d.ts:1728:98 - error TS2344: Type 'undefined' does not satisfy the constraint 'Exclude<keyof RootState, number | symbol>'.

1728 export function getState<RootState extends IRootBase = IRootBase, M extends StrKeys = undefined>

package.json ↓

{
"author": "handpear",
"name": "vite-react-antd-concent-typescript-windicss-alloy-admin",
"version": "0.0.0",
"scripts": {
"dev": "vite --mode development",
"test": "vite --mode test",
"build": "tsc && vite build --mode production",
"preview": "vite preview"
},
"dependencies": {
"antd": "^4.16.5",
"concent": "^2.15.12",
"crypto-js": "^4.0.0",
"nprogress": "^0.2.0",
"qs": "^6.10.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-router": "^5.2.0",
"react-router-config": "^5.1.1",
"react-router-dom": "^5.2.0",
"umi-request": "^1.3.9"
},
"devDependencies": {
"@types/crypto-js": "^4.0.1",
"@types/node": "^15.12.5",
"@types/nprogress": "^0.2.0",
"@types/qs": "^6.9.6",
"@types/react": "^17.0.11",
"@types/react-dom": "^17.0.7",
"@types/react-router-config": "^5.0.2",
"@types/react-router-dom": "^5.1.7",
"@typescript-eslint/eslint-plugin": "^4.27.0",
"@typescript-eslint/parser": "^4.27.0",
"@vitejs/plugin-react-refresh": "^1.3.4",
"@vue/compiler-sfc": "^3.1.2",
"autoprefixer": "^10.2.6",
"concent-plugin-redux-devtool": "^2.0.8",
"eslint": "^7.28.0",
"eslint-config-alloy": "^4.1.0",
"eslint-plugin-react": "^7.24.0",
"less": "^4.1.1",
"postcss-assets": "^6.0.0",
"typescript": "^4.3.3",
"vite": "^2.3.8",
"vite-plugin-components": "^0.11.2",
"vite-plugin-html": "^2.0.7",
"vite-plugin-pages": "^0.14.2",
"vite-plugin-style-import": "^1.0.1",
"vite-plugin-windicss": "^1.0.4",
"vite-react-jsx": "^1.1.1",
"windicss": "^3.1.3"
}
}

文档中关于函数组件的注册问题

文档中代码倒数第四行

...
//## 连接模块,组装函数组件
const connectFn = connectDumb({state, setup, mapProps, module:'welcomeModule'});
...

执行时浏览器会报如下错误

react_devtools_backend.js:2273 Error: CcFragment or CcClass's prop connect is invalid, module[mapProps] not found in cc store

改成如下后正常运行

...
//## 连接模块,组装函数组件
const connectFn = registerDumb({state, setup, mapProps, module:'welcomeModule'});
...

在线示例中使用的也是registerDumb方法

concent 文档修改建议

因为 我们的系统 ,是有很多 tab控件的,每个tab控件在点击生成的时候,会去生成一个界面,常规上来说,这个界面 是 固定基于某种模块生成界面的,
但有些 是特殊 tab界面,是动态 请求一个 react 控件 所属的js,该 界面 可能得模块是 :dynamic

那么 在 最开始 run的时候,这个 dynamic 模块 是还没有注册的,因为这种 dynamic 模块还是挺多的,估计有二十多个,要是 每个都写好在 store里,就太繁琐啦

所以 希望最好 提供一个 多次调用 run 的api 功能

React Native项目中报错

尝试在RN中使用,但是加载编译就失败了

error: Error: Unable to resolve module `react-dom` from `node_modules\concent\src\core\base\append-dispatcher.js`: react-dom could not be found within the project.

lazy导致的两次渲染

这里有一个bug,github地址是:https://github.com/henryzp/concent-test-demo

image

我的疑问是tab切换时,为什么tabContainer组件会render两次。。

export async function changeTabComplex(
  key: string,
  moduleState: TihaiState,
  actionCtx: IAC,
) {
  await actionCtx.dispatch(changeActiveTabKey, key);
  await actionCtx.dispatch(getTableList, { key, current: 1, pageSize: 10 });
  await actionCtx.dispatch(getTableList, { key, current: 2, pageSize: 10 });
}

export async function changeTab(
  key: string,
  moduleState: TihaiState,
  actionCtx: IAC,
) {
  await actionCtx.lazyDispatch(changeTabComplex, key);
}

触发的是changTab

期望的结果是render一次。。。

API设计的疑问

说实话,我不是很理解在API中加入computed跟watch这种;

我认为所有用户能够手动实现的功能,我们可以通过中间件去实现, 可以通过第三方库去实现, 而不应该由框架直接提供;

React hook版本问题

Invalid hook call. Hooks can only be called inside of the body of a function component

React 16.12
Concent 1.5.87

使用中感到难受疑惑的点

实例中的computed及watch由于签名为字符串数组,是否可以支持props呢,在使用setup中又想监听某些props的变化,而这个限制貌似只有将监听通过内置hook写在组件内部,给人一种很不优雅的感觉。本质上都是监听,却又要通过组件内部来触发settings更新state达到效果。
虽然对于模块的状态在实例中监听可能会多次触发,但某些情况下的衍生数据对于写入模块显得有些小题大做。
理想状态:
computed监听state、props、refComputed、moduleState、moduleComputed
watch监听state、props、refComputed、moduleState、moduleComputed

监控组数或者嵌套数据的改变

在mobx中可以监控到对象上字段或者数组的变化,比如arr.push的时候能自动触发ui刷新。但是concent中,只有新建clone一个数组setState才行。有什么好方法吗?如果每次一点小修改,就得把整个对象树或者数组clone,感觉开销太大了。

在一个module模块里,如何访问其它module模块的数据

如下图所示 foo模块中的reducer如何访问到 bar模块中的 name 变量?

const bar= {
  state: {
       name:'bar'
  },
}
const foo = {
  state: { ... },
  reducer: {
    async changeNameCompose(name, moduleState, actionCtx) {
        //这里如何访问到 bar 模块中的 name变量?
    },
}

谢谢!

一些初次使用的反馈

问题1:this.ctx.state和this.ctx.reducer语义的歧义

在使用this.ctx.state的时候,拿到的是本模块myModule的state,这个没问题很直观
但是同样的用this.ctx.reducer,拿到的却是全局的reducer,里面有
{"$$default":xxx,"$$global": yyy,"myModule": zzz}
this.ctx.reducer为什么不是自己模块的reducer?如果需要访问全局的,弄一个this.ctx.rootReducer不是更直观吗?

问题2:
通过dispatch传入字符串函数名的用法感觉很古老,不好用:
this.ctx.dispatch('doLogin', { userName: xxx, password: yyy });
连参数都还要手动再把名字写一次{name:xxx, password:yyy}),
最方便不应该是this.ctx.reducer.doLogin(xxx, yyy)这样吗?

问题3:
目前使用起来最痛苦的是对于模块(因为模块models代码在ui之外的其它目录,仅仅是run的时候注册进去的,ide无感),因为没法ide智能感知代码,state和reducer使用的时候全靠手动写。不像平时用this.state或者hooks里面,都可以直接感知到,敲代码很方便

How to get state in setup function

I want to update state via setState in my custom function, but previous state is need.

export default function setup(ctx) {
  const { initState, computed, watch, setState, sync, invoke } = ctx

  initState({
    judgedMap: {},
  })


  const judge = (id, v) => {
    setState({
      judgedMap: {
        ...state.judgedMap,
        [id]: v,
      },
    })
  }
 return {
    judge,
  }
}
setState((pre) => {
      console.log(pre)
      return pre
})

is not work!

关于types感应

我参考例子
https://codesandbox.io/s/concent-guide-xvcej?file=/src/types/store.d.ts

在放数据模型的文件夹写了一个concent.d.ts

import {StateType, ReducerType, ComputedValType, cst, MODULE_VOID, ICtx, IAnyFn} from 'concent';

import appState from "./state";
import * as appReducer from './reducer';
import * as appComputed from './computed';

export type AppState = StateType<typeof appState>;
export type AppReducer = ReducerType<typeof appReducer>;
export type AppComputed = ComputedValType<typeof appComputed>;

export type RootState = {
    [cst.MODULE_GLOBAL]: {},
    [cst.MODULE_DEFAULT]: {},
    [cst.MODULE_VOID]: {},
    app: AppState,
}

export type RootRd = {
    app: AppReducer,
}

export type RootCu = {
    app: AppComputed,
}

export type ICtxM<P, S, M, Se = {}> = S extends IAnyFn ?
    ICtx<RootState, RootRd, RootCu, P, ReturnType<S>, M, MODULE_VOID, Se> :
    ICtx<RootState, RootRd, RootCu, P, S, M, MODULE_VOID, Se>;

reducer.js有一个函数

export function makeNewFirstName({name}, state, ctx) {
  console.log(`reducer-23 name: `, name)
  console.log(`reducer-23 state: `, state)
  console.log(`reducer-23 ctx: `, ctx)
  return {firstName: name}
}

但是我在fn控件上使用的时候

appCtx.moduleReducer.makeNewFirstName({name: 'AAA-' + Date.now()})

虽然调用成功,但是webstorm还是提示makeNewFirstName函数不识别,没法点函数自己跳过去。

请问这是有哪里没弄对吗?

文档中看到一些参数顺序不对

https://concentjs.github.io/concent-doc/guide/concept-module-watch

watch:{
  firstName(n, o)=> { 
    console.log(`firstName changed from ${n.firstName} to ${o.firstName}`);
  },
  fullName:{
    fn:(newState)=> {
      console.log(`any value of firstName or lastName changed will trigger this`);
    },
    depKeys: ['firstName', 'lastName'],
  },
}

这个例子的参数名和 https://stackblitz.com/edit/hook-setup?file=CounterSetupComputedWatch.js 里面测试来看:watch 函数的第一个参数是 new,第二个参数是 old

但是从

type WatchFn = (
  oldVal:any,
  newVal:any, 
  fnCtx:FnCtx,
)=> void;

console.log(`firstName changed from ${n.firstName} to ${o.firstName}`);

看,第一个是 old 第二个是 new....


https://concentjs.github.io/concent-doc/api/g-register
这个文档里面的例子,register 参数都是反的

@register('Foo', {module:'foo', watchedKeys:['f1']})
class Foo extends Component{
  ...
}

import { register } from 'concent';
@register('Foo', {
  module:'foo', 
  watchedKeys:['f1'], 
  connect:{bar:'*'}}, //连接到bar模块,观察它的所有key值变化,
)
class Foo extends Component{
  ...
}

Is React Dependency Needed? Is 17v support?

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree

npm ERR! Found: [email protected]
npm ERR! node_modules/react
npm ERR! react@"^17.0.2" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^16.13.0" from [email protected]
npm ERR! node_modules/concent
npm ERR! concent@"^2.13.6" from the root project

反馈bug:模块一开始的 state 为 空对象,那么 函数组件中 获取到的 state 一直为空,不受 reducer 影响

示例如下:
我定义了一个 Product 模块 ,组件 默认 state 为 {}

run({
"product": { state: {}, reducer: { ...prodcutReducer } }
})

现在 我定义了 一个 class 组件 regeister(‘product’) Product

该 组件 内部 有一个 函数组件:ApplyDDUser
function ApplyDDUser(props) {
const ctx = useConcent({module: "product", props}, 'ApplyDDUser');
const { state, setState } = ctx;
const { showApplyProductUser } = state;
if(!showApplyProductUser )return null;
....

return 渲染代码

}

Product 有一个 componentDidMount 生命周期,调用 reducer:this.ctx.mr.getProuct(params || {});
从 服务器 异步获取 一个数据,会会 更新 状态 showApplyProductUser 为 true,

但是 现在 ApplyDDUser 怎么 都拿不到 product 模块的state,一直为 空对象{}

另外 ,我的代码平台是 基于 taro3的,最近在 做一个微信小程序,不知道 是否跟这些有关系?

React development 环境下的警告

React 版本:16.13.1
Concent 版本: 2.4.4

开发环境下总能看到如下的警告:

Warning: Expected CC($$CcClass5) state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.
    in CC($$CcClass5) (created by CC($$CcClass7))

不影响功能

用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性

用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性

Is there any typescript support?

Hi, I cannot find any typescript related words in the documentation, is that mean there is no typescript support for this package ?

watch timing

//state.js
const state = {
  isLogin: false,
}
export default state

//watch.js
import { history, } from 'react-router-concent';
const watch = {
  isLoginChange: {
    fn: (newState, oldState, fnCtx) => {
      newState ? history.replace('/') : history.replace('/login')
    },
    depKeys: ["isLogin"],
  },
}
export default watch

//run.js
import {run, configure} from 'concent';
import {configureRoute} from 'react-router-concent';

import state from './state'
import watch from './state'
import * as reducer from './reducer';

run({
  app: {
    state,
    reducer,
    watch,
  }
})
configureRoute()

get those error:

------------ CC WARNING ------------ 0.chunk.js:245584:20
retKey[isLogin] item type error 0.chunk.js:245584:20

need help to translate doc

Concent doc [https://concentjs.github.io/concent-doc/] need to be translated to other languages, can any one help me, I will greatly appreciate it.

开发时保持热更新前的state

在开发模式时,能否保持热更新前的状态呢?可配置?不然每次改一点js代码,又得在UI上点一圈才能回到刚才的状态

concent是否支持数据持久化中间件

您好,请教一下,我尝试着让concent接入redux-persist方案,它的接入方式需要劫持全部的reducer,concent有暴露此API吗?亦或者concent有自己的持久化实现方案?

Maximum call stack size exceeded

RangeError: Maximum call stack size exceeded
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)

就问几点

1、可预测?怎么预测。
2、高性能?挂载了这么多东西,谈何高,有本事给出测试报告。
3、依赖标记,引用收集?体现在哪里,怕不是 ppt 库。
3、min size 24k,敢看也不敢用。

renderKey在2.0版本中失效bug

根据官方介绍高性能demo,在本地环境中使用concent 2.7.25,发现不更新列表元素的试图
在线上demo中,update最新包,修改书籍名称同样出现问题。
访问地址

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.