umiJs 4.x useModel使用报错问题解决

在umi 3.x框架中,我们使用useModel相对比较方便:

1、src文件夹下创建models文件夹,创建全局model ts文件:

数据流管理插件采用约定式目录结构,我们约定可以在 src/modelssrc/pages/xxxx/models/目录中,和 src/pages/xxxx/model.{js,jsx,ts,tsx} 文件引入 Model 文件。 Model 文件允许使用 .(tsx|ts|jsx|js) 四种后缀格式。

2、在需要使用的文件中 引入useModel即可使用。

import { useModel } from "umi";

export default ()=> {
    const { XXX } = useModel('xxModel') ;
}

更新到umi 4.x后,useModel的使用方式有了些许变化,变化主要在于引入注册机制。

umi 4.x 强调运行时配置的概念,就是说需要什么插件,你就自己引入注册使用,在很大程度上避免了框架过于臃肿的麻烦,加快了打包运行速度

使用方式主要有2种:

1、在创建umijs项目时,选择自带数据流功能的 @umijs/max 项目

在使用 create-umi 选择 Ant Design Pro 模板,就能使用 @umijs/max 来创建项目了。

npx create-umi@latest 
? Pick Umi App Template › - Use arrow-keys. Return to submit. 
  Simple App 
❯ Ant Design Pro 
  Vue Simple App

新建的项目默认安装以下插件, 可以按需开启:

同时需要在项目中注册使用model:

// .umirc.ts 或者 config.ts 中

export default {
  model: {}
};

2、手动开启数据流功能的插件使用该功能

这种方法是建立在创建的umi项目中没有包含数据流功能插件的情况下

首先安装 数据流功能插件:

npm i -D @umijs/plugins

注册使用model:

// .umirc.ts 
export default { 
   plugins: [ 
      '@umijs/plugins/dist/initial-state', 
      '@umijs/plugins/dist/model', 
   ], 
   initialState: {}, 
   model: {}, 
};

通过以上两种方法 即可在umijs 4.x 中正常使用 useModel hook。

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
umijs和modern.js都是现代化的JavaScript框架,用于构建前端应用程序。下面是对两者的简要比较: umijs是一个由阿里巴巴开源的JavaScript框架,它具有强大的扩展能力和灵活性。umijs的核心理念是“开箱即用”,它提供了许多内置功能和插件,使开发者能够快速搭建前端应用。umijs还提供了完整的生态系统,包括路由管理、状态管理、构建工具等,使开发更加高效和便捷。 modern.js是一个由神策数据推出的JavaScript框架,强调“简单、可靠和高效”。modern.js的设计目标是提供一种简洁且易于上手的开发方式,同时保持高效和稳定。它提供了一套简洁的API和组件,使开发者能够快速构建功能强大且高性能的前端应用。modern.js还非常注重代码的可读性和可维护性,使团队协作更加容易。 总的来说,umijs和modern.js都是出色的JavaScript框架,但在一些方面有所不同。umijs更加注重扩展性和灵活性,适用于大型的复杂项目;而modern.js则更注重简洁性和易用性,适用于快速开发小型项目或原型。 选择umijs还是modern.js主要取决于具体项目需求和个人偏好。开发者可以通过阅读官方文档、查看示例代码以及借助社区讨论等方式来了解它们的特点和适用场景,进而做出更明智的选择。无论选择哪个框架,都能为开发者提供良好的开发体验和性能优化的能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值