GithubHelp home page GithubHelp logo

Comments (105)

Cxp18028008119 avatar Cxp18028008119 commented on May 14, 2024 31

前端 真难

from blog.

brickspert avatar brickspert commented on May 14, 2024 4

@Mrzhangyu 感谢认可。谢谢

from blog.

codinglilong avatar codinglilong commented on May 14, 2024 4

啥时候能实现下react-redux跪求哦

from blog.

houwhu avatar houwhu commented on May 14, 2024 3

这个写的真的很好,比网上看到很多redux的教程写的好

from blog.

EncounterOnly avatar EncounterOnly commented on May 14, 2024 2

大神的理解很透彻,通俗易懂,学习了。

from blog.

xingyongchao avatar xingyongchao commented on May 14, 2024 2

通过简述过程中把redux源码解析出来, 大神666

from blog.

xz1024 avatar xz1024 commented on May 14, 2024 2

android开发时,通常使用MVP分层已经足够用了。真心想不出来,请大神指教!

安卓开发的来添什么乱

from blog.

txp1035 avatar txp1035 commented on May 14, 2024 2

文章很不错,循序渐进,通俗易懂。

/* 实现 exception(time((logger(dispatch))))*/
chain.reverse().map(middleware => {
   dispatch = middleware(dispatch);
});

从语义话看,这里我建议用forEach更好呢。

from blog.

Shangjinhui avatar Shangjinhui commented on May 14, 2024 1

redux可以一用在任何框架,与框架本身没有关系。那是不是vue的store也一样啊

from blog.

Shangjinhui avatar Shangjinhui commented on May 14, 2024 1

我可能需要先学一下redux运行原理再来看这个底层

from blog.

coolpail avatar coolpail commented on May 14, 2024 1

牛逼,真香

from blog.

coolpail avatar coolpail commented on May 14, 2024 1

优秀

export default function compose(...funcs) {
  if (funcs.length === 1) {
    return funcs[0]
  }
  return funcs.reduce((a, b) => (...args) => a(b(...args)))
}

数组是长度为1时候reduce默认就是第一个元素,这边判断是不是多余了

from blog.

yaoyanweb avatar yaoyanweb commented on May 14, 2024 1

111111111WX20200603-145702@2x

大佬 这个地方有点小错误,不过整篇文章还是很通俗易懂,加油!

from blog.

MrCuriosity avatar MrCuriosity commented on May 14, 2024 1

写的真好,看过的有关文章里最循序渐进通俗易懂的了

applyMiddleware那里把store抽出来返回函数,参数是action,有点依赖注入和惰性求值的味道,虽然不完全是纯函数

如果中间件那里加上异步处理的解析,比如外部的runSaga(watchers),那就更棒了

from blog.

maojiebaibaibai avatar maojiebaibaibai commented on May 14, 2024

看了这么多redux的教程,这个真的是很通俗易懂了,不过最后中间件的地方还得好好捋一捋,还是有点晕,感谢大神

from blog.

didihaha avatar didihaha commented on May 14, 2024

这个讲的通俗易懂,赞--

from blog.

brickspert avatar brickspert commented on May 14, 2024

@maojiebaibaibai 中间件那里,建议跟着写一遍。自己实现两个中间件就会了!

from blog.

dumuchenglin123 avatar dumuchenglin123 commented on May 14, 2024

厉害厉害,真的是用心了

from blog.

aokijiliao avatar aokijiliao commented on May 14, 2024

厉害,讲的很好,

from blog.

JasonGaoG avatar JasonGaoG commented on May 14, 2024

这个真心赞一个。

from blog.

getOnce avatar getOnce commented on May 14, 2024

点赞。

from blog.

TangTangJia avatar TangTangJia commented on May 14, 2024

解释的非常清晰就算初学者也能看懂 感谢作者

from blog.

acmu avatar acmu commented on May 14, 2024

为什么你这么厉害,真的通俗易懂唉

from blog.

mrliangsgit avatar mrliangsgit commented on May 14, 2024

这个是真的大神,实在佩服,十分感谢,希望继续出关于dva实战的文章

from blog.

xiaotanit avatar xiaotanit commented on May 14, 2024

666,是看过的关于redux最棒的教程

from blog.

dutaoli avatar dutaoli commented on May 14, 2024

真是太厉害了,终于明白了种种的种种

from blog.

Mstian avatar Mstian commented on May 14, 2024

多文件协作第三段代码
/注意:countReducer 接收的 state 是 state.info/
应该是InfoReducer 接收的state是 state.info

from blog.

florida0723 avatar florida0723 commented on May 14, 2024

赞👍

from blog.

venlee1993 avatar venlee1993 commented on May 14, 2024

非常棒,赞

from blog.

Jay-cool-maker avatar Jay-cool-maker commented on May 14, 2024

看的很透彻 感谢大神

from blog.

cuileikun avatar cuileikun commented on May 14, 2024

讲解的通俗易懂,点赞

from blog.

AganCN avatar AganCN commented on May 14, 2024

感谢

from blog.

jinceon avatar jinceon commented on May 14, 2024

送上我的膝盖

from blog.

barryzhang123 avatar barryzhang123 commented on May 14, 2024

牛逼 讲得很透彻

from blog.

378056350 avatar 378056350 commented on May 14, 2024

功力得多么深厚,才能把这个讲的这么透彻啊

from blog.

Lin-Kangjing avatar Lin-Kangjing commented on May 14, 2024

果然是大神,这是我看的最清晰的redex叫教程了。感谢!!!!

from blog.

xz1024 avatar xz1024 commented on May 14, 2024

大神,虽然我还不会用react;但是已经了解redux了

from blog.

Shanxian avatar Shanxian commented on May 14, 2024

感谢分享,看到所有的为止最通俗易懂的一篇

from blog.

cyclv avatar cyclv commented on May 14, 2024

这个真厉害

from blog.

RichardChen1122 avatar RichardChen1122 commented on May 14, 2024

这个厉害了,透彻易懂

from blog.

heyang5020 avatar heyang5020 commented on May 14, 2024

感谢大神,讲的很好,向大神学习!

from blog.

menglou avatar menglou commented on May 14, 2024

大神啊,讲的很好,一遍看不懂,多看几遍就懂的多了

from blog.

WJjack avatar WJjack commented on May 14, 2024

这个是真的吊,太感谢大神了,值得点赞

from blog.

cainiao308 avatar cainiao308 commented on May 14, 2024

码,后面看

from blog.

xulinnn avatar xulinnn commented on May 14, 2024

太厉害了吧 感谢大神 发现自己要学的东西还有很多 大家一起加油吧~

from blog.

xulinnn avatar xulinnn commented on May 14, 2024

真的是好激动 找到这篇文章 太感谢作者了

from blog.

LiZheng1501 avatar LiZheng1501 commented on May 14, 2024

大神为什么for(i = 0; i<listeners.length; i++)中的listener是一个函数呢?为什么要listener();一下呢?这个不太理解,怎么实现的通知的...

from blog.

JackeBluthH avatar JackeBluthH commented on May 14, 2024

刚学习react时没有使用redux,因为觉得比较复杂、难懂。看了楼主的解说,通俗易懂。真心感谢楼主

from blog.

liruisen avatar liruisen commented on May 14, 2024

大神为什么for(i = 0; i<listeners.length; i++)中的listener是一个函数呢?为什么要listener();一下呢?这个不太理解,怎么实现的通知的...

因为listener是当做一个函数或者订阅事件传入到listeners数组中的,这个数组保存的不是数值,是所有的订阅者的订阅,也就是

   console . log ( state . count );
}```
敲一遍代码,很多东西就能看懂了

from blog.

GeiDiao avatar GeiDiao commented on May 14, 2024

学习了

from blog.

ailume avatar ailume commented on May 14, 2024

大神为什么for(i = 0; i<listeners.length; i++)中的listener是一个函数呢?为什么要listener();一下呢?这个不太理解,怎么实现的通知的...
我来给他 修改一下 ,你就明白了
subscribe((fn) = () => {
console.log(fn);
console.log(state.count);
});
这个是调用这个方法 subscribe , 而且这个方法 接收一个 参数 ,只是这个参数是个方法 ( fn )

from blog.

LiYZHe avatar LiYZHe commented on May 14, 2024

真是好人,之前只是大概了解一下redux,现在明白好多了

from blog.

z-9527 avatar z-9527 commented on May 14, 2024

这也太秀了吧

from blog.

honeywong avatar honeywong commented on May 14, 2024

不错

from blog.

qaz6237326 avatar qaz6237326 commented on May 14, 2024

这个是我看过的最好的redux文章了,想请问一下,为什么redux不支持异步?

from blog.

qq794877194 avatar qq794877194 commented on May 14, 2024

厉害了,厉害了,特地登录上来赞一下

from blog.

zhuwo avatar zhuwo commented on May 14, 2024

通俗易通,忍不住给个赞

from blog.

zhangtai315 avatar zhangtai315 commented on May 14, 2024

牛逼!

from blog.

Nealyang avatar Nealyang commented on May 14, 2024

学习了~老哥,文章可否授权公众号【全栈前端精选】转载,注明出处和作者

from blog.

brickspert avatar brickspert commented on May 14, 2024

@Nealyang 可以的,注明出处即可。

from blog.

xiongzhong avatar xiongzhong commented on May 14, 2024

膜拜大佬,文章由浅入深,通俗易懂,不知道大佬有没有技术博客,很想看看

from blog.

tangtuotuo avatar tangtuotuo commented on May 14, 2024

大神厉害

from blog.

WangXi01 avatar WangXi01 commented on May 14, 2024

大神厉害,我没做过react项目,只是看了看官方文档,感觉redux有点复杂,看了大神的文章,感觉理解更透彻了

from blog.

liuhui666 avatar liuhui666 commented on May 14, 2024

👍👍👍,通俗易懂

from blog.

carrotboy avatar carrotboy commented on May 14, 2024

这个是我看过的最好的redux文章了,想请问一下,为什么redux不支持异步?

redux只是一个信息管理工具,在异步回调里面使用就好了

from blog.

yiwo18 avatar yiwo18 commented on May 14, 2024

虽然还不懂,先收藏,等react搞得差不多了再来研究。先膜拜下大佬!!

from blog.

DaWeIDaDa avatar DaWeIDaDa commented on May 14, 2024

关注了

from blog.

gjgstyle avatar gjgstyle commented on May 14, 2024

搞后端的就得网络调配+后端+前端都得会,我好难啊

from blog.

dailijian avatar dailijian commented on May 14, 2024

不会 redux 都看懂了,大神威武!!!

from blog.

damonare avatar damonare commented on May 14, 2024

文章很不错,循序渐进,通俗易懂。

/* 实现 exception(time((logger(dispatch))))*/
chain.reverse().map(middleware => {
   dispatch = middleware(dispatch);
});

从语义话看,这里我建议用forEach更好呢。

chain.reduce((a, b) => b(a), dispatch)

这样写可能更优雅,作者的本义可能是想跳过compose的实现

from blog.

lxxxv5 avatar lxxxv5 commented on May 14, 2024

大彻大悟

from blog.

NikFranki avatar NikFranki commented on May 14, 2024

大赞

from blog.

lichangji-li avatar lichangji-li commented on May 14, 2024

厉害

from blog.

songning0605 avatar songning0605 commented on May 14, 2024

Mark

from blog.

z-9527 avatar z-9527 commented on May 14, 2024

中间件那里有个问题,store为什么要单独作为一个参数传进去,为什么不一起和next传进去

from blog.

yuexiangrong avatar yuexiangrong commented on May 14, 2024

牛逼

from blog.

Quansansan avatar Quansansan commented on May 14, 2024

写的很棒,看着看着就笑了,内心戏好足的技术大佬吖~

from blog.

songzhi909 avatar songzhi909 commented on May 14, 2024

厉害,通俗易懂

from blog.

slashnie avatar slashnie commented on May 14, 2024

厉害啊大佬,真是透彻,希望多做一些这样的知识点解析,太有用了。

from blog.

jundream1988 avatar jundream1988 commented on May 14, 2024

请收下膝盖!!

from blog.

 avatar commented on May 14, 2024

点个赞

from blog.

zihudie avatar zihudie commented on May 14, 2024

很通俗易懂,我先过一遍。项目完成之后,再跟着你这写一遍。谢谢分享~~真的很棒👍

from blog.

BarneyRoos avatar BarneyRoos commented on May 14, 2024

真是一种享受,要是多一些这样的文章该多好!

from blog.

Captain-Tab avatar Captain-Tab commented on May 14, 2024

之前学习过,现在来复习。写的真棒 👍

from blog.

coolpail avatar coolpail commented on May 14, 2024

优秀

export default function compose(...funcs) {
  if (funcs.length === 1) {
    return funcs[0]
  }
  return funcs.reduce((a, b) => (...args) => a(b(...args)))
}

数组是长度为1时候reduce默认就是第一个元素,这边判断是不是多余了

from blog.

1597403461 avatar 1597403461 commented on May 14, 2024

perfect

from blog.

BugUpdater avatar BugUpdater commented on May 14, 2024
111111111WX20200603-145702@2x

大佬 这个地方有点小错误,不过整篇文章还是很通俗易懂,加油!

这个没错,你自己运行下试试。state是当前的状态,state.name和state.description是旧的值,如果换成这两个那就相当于没修改了。action里才是要更新的新值,所以这里从action中取是没问题的~ 你再想想哈

from blog.

shentaoliu avatar shentaoliu commented on May 14, 2024

跟着写了一遍,很赞啊,很全面!

from blog.

bingo-keith avatar bingo-keith commented on May 14, 2024

讲得很好,跟着走了一遍,循序渐进的,很好理解

from blog.

pengcc avatar pengcc commented on May 14, 2024

文章很不错,循序渐进,通俗易懂。

/* 实现 exception(time((logger(dispatch))))*/
chain.reverse().map(middleware => {
   dispatch = middleware(dispatch);
});

从语义话看,这里我建议用forEach更好呢。

chain.reduce((a, b) => b(a), dispatch)

这样写可能更优雅,作者的本义可能是想跳过compose的实现

我也认同reduce 更好(看到后边发现了),但map是没有必要的,forEach更合适,这里没有必要创建一个无用的新数组

from blog.

beyondouyuan avatar beyondouyuan commented on May 14, 2024

大佬讲得非常通透易懂哇!不过总结那里有一句话“dispatch( action ) 触发 action,生成新的 state”,感觉可能会有一丢丢的歧义【可能会有人理解成dispath和reducer一样都可以更改state,但实际上,更改state的地方只有一个,那就是reducer,无论是redux文档的解释还是大佬代码里的表现显示都是如此】。多加几个字,改成“dispatch( action ) 触发 action,通知reducer按计划生成新的 state”,这样子也许更好一点?当然这只是小弟的个人感觉哈

from blog.

7neves avatar 7neves commented on May 14, 2024

大佬,通透👍

from blog.

jxj666 avatar jxj666 commented on May 14, 2024

终于看完了,临摹了一遍,收获很大
https://github.com/jxj322991/redux

from blog.

kvsur avatar kvsur commented on May 14, 2024

用TypeScript模仿着写了一个版本

from blog.

yanhuomili avatar yanhuomili commented on May 14, 2024

牛逼

from blog.

nmnmtttt avatar nmnmtttt commented on May 14, 2024

谢谢大神,很有帮助!

from blog.

byranb avatar byranb commented on May 14, 2024

牛逼!

from blog.

kvdo2 avatar kvdo2 commented on May 14, 2024

谢谢!

from blog.

liuhui666 avatar liuhui666 commented on May 14, 2024

from blog.

DongHY1 avatar DongHY1 commented on May 14, 2024

unsubscribe的实现方式有问题,以作者给出的DEMO-9,index.js中的代码为例

const un = store.subscribe(() => {
  let state = store.getState();
  console.log(state.counter.count);
});
store.dispatch({
  type: 'INCREMENT'
});
un()
store.dispatch({
  type: 'INCREMENT'
});
console.log(store.getState()) // { counter: { count: 3 } }

取消订阅后,count的值仍然发生了变化

from blog.

Related Issues (20)

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.