在我看来,Redux 第一次学习这个库还是有点迷糊的,需要一些时间来理解和开始使用。即使您使用 Redux Toolkit——最新的库(来自 Redux 作者)——它也有一些棘手的时刻,从一开始就可能不清楚。
我正在使用Master-Hook。
Redux , react-redux , redux-thunk , reselect 已经安装在库中,您需要按照步骤操作。
第一步:创建“src/hooks.js”文件
import MasterHook from 'master-hook'
export const useMyHook = MasterHook({
storage: "myStorage",
initialState: {
myName: 'Vanda',
},
cache: {
myName: 10000,
}
})
您创建您的组件并将其导出 (useMyHook) 设置初始状态 (initialState:...) 设置值需要以毫秒为单位保持缓存的时间长度 (缓存:...)
第二步:在src/index.js中添加Provider
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import MasterHook from 'master-hook';
ReactDOM.render(
<React.StrictMode>
<MasterHook.Provider>
<App />
</MasterHook.Provider>
</React.StrictMode>,
document.getElementById('root')
);
- 导入 MasterHook
- 用 MasterHook.Provider 包装你的文件
第三步:在 src/App.js 中使用你的钩子
import logo from './logo.svg';
import './App.css';
import { useMyHook } from './hooks'
function App() {
const { myName, setMyName } = useMyHook()
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
My name is {myName}
</p>
<a
onClick={() => setMyName('Boris')}
className="App-link"
>
Set my name to 'Boris'
</a>
</header>
</div>
);
}
export default App;
导入你的钩子 useMyHook
声明你的钩子
const { myName, setMyName } = useMyHook()
在您的代码中使用它
{myName}
和
{()=>setMyName('')}
删除 href 属性以防止其更改页面。setMyName 操作是自动创建的。
无需连接到商店。它已经连接了。
第四步:运行你的项目!
npm run start
就是这样:)