redux教程,通过redux,react如何和外部做到数据互通?
发布于 作者:苏南大叔 来源:程序如此灵动~

在很久之前的一篇文章中,苏南大叔曾经提出一个问题。react
如何和外部页面做到数据互通。当时得出的结论是:可以互通,但是不推荐这么做。目前,这个问题再加上redux
这个跨界产物的话。数据互通似乎是很容易的事情了。唯一麻烦的事情就是:要搭建webpack
环境... 这其实很糟心...

大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述react
和普通的html
页面,通过redux
数据互通的方式。本文测试环境:win10
,node@16.14.2
,webpack@5.74.0
,webpack-cli@4.10.0
,webpack-dev-server@4.9.3
,react@18.2.0
,react-dom@18.2.0
,babel-loader@8.2.5
,@babel/core@7.18.9
,@babel/preset-env@7.18.9
,@babel/preset-react@7.18.6
,reduxjs/toolkit@1.8.3
,react-redux@8.0.2
,chrome@103.0.5060.53
,redux-devtools-extension@3.0.11
。
redux
独立使用
正如redux
官网描述的一样,redux
和react
并不是紧密绑定在一起的。redux
可以和react
、vue
等一起使用,也可以单独使用。那么,在redux
的第二个例子里面,大家可以看到,redux
可以独立使用,其核心就是store
。参考文章:
https://newsn.net/say/redux-toolkit.html
那么,两者相互访问的理论基础就是共用一个store
。把react
中的store
暴露到window.
层面上,把slice
的actions
也暴露出到window.
层面上。

外部js
访问数据
可以随时查看数据:
也可以订阅状态变化:
还可以执行改变数据的函数:

react
内访问数据
无状态组件使用useSelector
获得数据,还可以随时列出数据。react
进化到无状态组件后,可以使用useSelector
访问到redux
的state
。而这个state
也是储存在store
里面的。参考文章:

测试例子
基于webpack
搭建自己的环境,
测试的例子是基于多个slice
的文章改编:
slice.js
:

index.js
:
运行结果:

相关文章
- https://newsn.net/say/react-with-html.html
- https://newsn.net/say/webpack-react-diy.html
- https://newsn.net/say/redux-slice.html
- https://newsn.net/say/redux-slice-2.html
综述
更多redux
的经验文章,请参考:


