redux和react有啥不同
redux和react的不同有:1、redux是一个JavaScript状态容器,而react是Facebook推出的一个用来构建会员界面的JavaScript库;2、redux主要供给状态治理,而react主要用于构建UI等等。
引荐:《javascript根基教程》
不同
redux
redux是一个JavaScript状态容器,主要供给状态治理。可以运转于效劳端,客户端,原生利用。除了支撑React外还支撑其他的UI框架,体积小,只要2kb。当要与React一起使用的时候,可以使用react-redux插件来进一步晋升我们的开发体验。
可以通过调取响应的API或者是以响应的机制改动这个容器中的数据就可以了,其他组件可以通过主动从新沉着器中猎取新数据来从新停止渲染。
此外这个容器还需支撑公布订阅机制,即当某个数据改动了,关怀这个数据的组件就产即会得到通知。
react
react是 Facebook 推出的一个用来构建会员界面的 JavaScript 库。 React主要用于构建UI,许多人认为 React 是 MVC 中的 V(视图)。React 具有较高的机能,代码逻辑非常简便,越来越多的人已开端关注和使用它。
React 是一个为数据供给渲染为 HTML 视图的开源 JavaScript 库。React 视图平常采纳包括以自定义 HTML 标志规定的其他组件的组件渲染。React 为程序员供给了一种子组件不克不及直接影响外层组件的模型,数据改动时对 HTML 文档的有效更新,和现代单页利用中组件之间洁净的别离。
学会用本人的思想来懂得React和Redux;不克不及光听别人描写名词,懂得起来是很艰难的。
从需求动身,看看使用React需要什么:
1、React有props和state: props意味着父级分发下来的属性,state意味着组件内部可以自行治理的状态,并且整个React没有数据向上回溯的能力,也就是说数据只能单向向下分发,或者自行内部消化。
懂得这个是懂得React和Redux的前提。
2、一样构建的React组件内部大概是一个完全的利用,它本人工作良好,你可以通过属性作为API操纵它。但是更多的时候发明React基本没法让两个组件互订交流,使用对方的数据。
然后这时候不通过DOM沟通(也就是React体制内)解决的独一方法就是晋升state,将state放到共有的父组件中来治理,再作为props分发回子组件。
3、子组件改动父组件state的方法只能是通过onClick触发父组件声明好的回调,也就是父组件提早声明好函数或办法作为契约描写本人的state将怎样转变,再将它一样作为属性交给子组件使用。
这样就显现了一个模式:数据总是单向从顶层向下分发的,但是只要子组件回调在概念上可以回到state顶层影响数据。这样state必然程度上是响应式的。
4、为了面临所有大概的扩展问题,最容易想到的方法就是把所有state集中放到所有组件顶层,然后分发给所有组件。
5. 为了有更好的state治理,就需要一个库来作为更专业的顶层state分发给所有React利用,这就是Redux。让我们回来看看重现`上面构造的需求:
需要回调通知state (等同于回调参数) -> action
需要按照回调处置 (等同于父级办法) -> reducer
需要state (等同于总状态) -> store
对Redux来说只要这三个要素:
action是纯声明式的数据构造,只供给事件的所有要素,不供给逻辑。
reducer是一个匹配函数,action的发送是全局的:所有的reducer都可以捕获到并匹配与本人相关与否,相关就拿走action中的要素停止逻辑处置,修改store中的状态,不相关就不合错误state做处置原样返回。
store负责储备状态并可以被react api回调,公布action.
当然一样不会直接把两个库拿来用,还有一个binding叫react-redux, 供给一个Provider和connect。许多人其实看懂了redux卡在这里。
Provider是一个一般组件,可以作为顶层app的分发点,它只需要store属性就可以了。它会将state分发给所有被connect的组件,不管它在哪里,被嵌套多少层。
connect是真正的重点,它是一个科里化函数,意思是先接受两个参数(数据绑定mapStateToProps和事件绑定mapDispatchToProps),再接受一个参数(将要绑定的组件本身):
mapStateToProps:构建好Redux系统的时候,它会被主动初始化,但是你的React组件并不知道它的存在,因此你需要分拣出你需要的Redux状态,所以你需要绑定一个函数,它的参数是state,简便返回你关怀的几个值。
mapDispatchToProps:声明好的action作为回调,也可以被注入到组件里,就是通过这个函数,它的参数是dispatch,通过redux的辅助办法bindActionCreator绑定所有action乃至参数的dispatch,就可以作为属性在组件里面作为函数简便使用了,不需要手动dispatch。这个mapDispatchToProps是可选的,假如不传这个参数redux会简便把dispatch作为属性注入给组件,可以手动当做store.dispatch使用。
这也是为什么要科里化的缘由。
做好以上流程Redux和React就可以工作了。
简便地说就是:
1.顶层分发状态,让React组件被动地渲染。
2.监听事件,事件有权益回到所有状态顶层影响状态。
总结:
react需要一个治理状态的治理者,redux就充当这个角色停止顶层分发状态,改动react组件的渲染。
以上就是redux和react有啥不同的具体内容,更多请关注百分百源码网其它相关文章!