UseModel 简单用法

  1. 开发的项目本身就是umi 里面有usemodel

2.我第一步创建了个文件夹src里面

3.在该文件夹里面写了几个变量

4.之后随便在一个index页面引入

5.然后我打印发现的确实现了数据共享,只要页面不关闭,修改了model里面的变量就会引起其他页面model变量发生变化。

6.useModel的第二个参数,第二个参数用来性能优化

7.

8.就是我截图里面user,fetchUser在某个组件中使用,如果其中一个发生变化就会引起页面渲染

user这个models下面的文件夹不仅仅只有user,fetchUser这两个变量,只是组件中没有用到,所以没有写。

9.这样没有啥啊,就改了个名字,我们也没有看出性能优化多少啊,和直接导入使用没啥区别啊?数据多了你就知道了。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在React中,useModel是一种常用的自定义钩子,它可以让我们更方便地管理应用程序中的状态。useModel一般用于管理全局状态,例如用户登录状态、主题等。 它的实现原理是使用React的Context API来创建一个全局的状态管理器,并通过useContext钩子来访问这个状态管理器。使用useModel钩子可以让我们更方便地对这个状态管理器进行操作。 下面是一个简单useModel例子: ``` import React, { createContext, useContext, useState } from 'react'; const ModelContext = createContext(); const ModelProvider = ({ children }) => { const [count, setCount] = useState(0); const increment = () => setCount(count + 1); const decrement = () => setCount(count - 1); const value = { count, increment, decrement, }; return ( <ModelContext.Provider value={value}>{children}</ModelContext.Provider> ); }; const useModel = () => useContext(ModelContext); export { ModelProvider, useModel }; ``` 我们首先创建了一个ModelContext,用于存储全局状态。然后通过ModelProvider组件来包裹整个应用程序,并将状态和方法传递给子组件。最后,我们通过useModel钩子来访问这些状态和方法。 在组件中使用useModel钩子非常简单: ``` import { useModel } from './useModel'; const Counter = () => { const { count, increment, decrement } = useModel(); return ( <div> <p>Count: {count}</p> <button onClick={increment}>Increment</button> <button onClick={decrement}>Decrement</button> </div> ); }; ``` 在这个例子中,我们可以轻松地访问全局状态,并对其进行操作,而无需在组件之间传递props。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值