在我看来,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:...)
设置值需要在毫秒内保持缓存多长时间(缓存:...)
第二步:将Provider添加到src/index.js
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;
导入你的钩子
使用MyHook
声明你的钩子
const { myName, setMyName } = useMyHook()
在你的代码中使用它
{myName}
和
{()=>setMyName('')}
删除 href 属性以防止它改变页面。 setMyName 动作是自动创建的。
无需连接到商店。它已经连接了。
第四步:运行您的项目!
npm run start
就是这样:)