npm 包 umi-plugin-dva 使用教程

前言

随着前端开发技术的发展,前端技术栈也逐渐变得复杂多样。其中,前端应用架构层面的开发变得越来越重要,因此前端框架的选择尤为关键。

在众多前端框架中,umi 是一个基于 React 的企业级开发框架,提供了面向中大型场景的前端应用架构方案。更重要的是,它提出了一套路由和插件的集成方案,可以显著提高开发效率。

在 umi 中,umi-plugin-dva 是一个非常重要的插件,它提供了基于 dva 数据流方案的集成,使得我们在使用 umi 进行开发时,开发数据流相对容易。在本篇文章中,我们将详细介绍 umi-plugin-dva 的使用方法。

安装

umi-plugin-dva 是 umi 的插件,因此需要在 umi 中使用。首先,需要在安装 umi 的同时,一起安装 umi-plugin-dva:

--- ------- --- -------------- ------

配置

安装完成后,在 umi 的配置文件 config/config.js 中,加入 umi-plugin-dva 的配置:

------ ------- -
  -----

  -------- -
    -

      ------------------- -- ------ ------------------------
      -
        -----
      -
    --
    -

      ----------------- -----------
      -
        -- -- --- -----
        ------ -----
      --
    --
  --

  -----
-

其中, immer: true 表示使用 immer 实现可变数据的管理,这是一个非常推荐的配置。

babel-plugin-add-module-exports 5.0.0 及以上版本中,已经默认禁用添加模块导出。针对这种情况,记得在 .babelrc 中加入下面的配置:

-
  ---------- -
    ---------------------- - --------------------- ---- --
  -
-

umi-plugin-dva 中的 model 配置

在 umi-plugin-dva 中,我们可以利用 model 配置文件来处理数据流的管理。

我们可以创建一个 model 文件夹,并在里面创建一个以 .js 结尾的配置文件,例如 todos.js

------ ------- -
  ---------- -------- -- ----
  ------ -
    ----- --- -- ----
  --
  --------- -
    ---------- ------- -
      ----- - -------- ---- - - -------
      ------ -
        ---------
        ----- --------------- ------ -- ---- ----
      --
    --
  --
--

如果需要使用 immer,需要开启 immer: true,则相应的需要返回一个不可变数据对象,如下:

------ ------- ---- --------

------ ------- -
  ---------- -------- -- ----
  ------ -
    ----- --- -- ----
  --
  --------- -
    ---------- ------- -
      ----- - -------- ---- - - -------
      -- -- ----- -----
      ------ -------------- ------- -- -
        ----------------------
      ---
    --
  --
--

这样,我们就成功了创建了一个 todos 的数据管理模块,接下来,在页面或组件中即可访问该数据模块。

在 pages 和 components 中使用 remodel

在 umi-plugin-dva 中,我们可以通过 @ 符号来使用指定的 model。例如,在页面中使用:

------ ----- ---- --------
------ - ------- - ---- ------

----------- ----- -- -- --
  ------
---
----- ------ ------- --------------- -
  ----------- - -- -- -
    -- ---- ----
    ----- - -------- - - -----------
    ----------
      ----- ------------
      -------- -
        --- --- -----------------
        -------- -------------- -------------------
      --
    ---
  --

  -------- -
    ----- -
      ------ - ---- --
    - - -----------

    ------ -
      -----

        -- ----

        ----

          ---------------- -- -
            --- ---------------------------------
          ---
        -----

        ------- ---------------------------------------
      ------
    --
  -
-

在上面的代码中,我们通过 connect 高阶组件将 todos 数据注入到组件中,并在 handleClick 中添加了一项 todo

同样的,在组件中使用也非常简单:

------ ----- ---- --------
------ - ------- - ---- ------

----------- ----- -- -- --
  ------
---
----- ----------- ------- --------------- -
  ----------- - -- -- -
    -- ---- ----
    ----- - -------- - - -----------
    ----------
      ----- ------------
      -------- -
        --- --- -----------------
        -------- -------------- -------------------
      --
    ---
  --

  -------- -
    ----- -
      ------ - ---- --
    - - -----------

    ------ -
      -----

        -- ---------

        ----

          ---------------- -- -
            --- ---------------------------------
          ---
        -----

        ------- ---------------------------------------
      ------
    --
  -
-

以上就是在 umi-plugin-dva 中,使用 model 配置管理数据流的方法。在 umi 中,使用 umi-plugin-dva 可以非常方便地实现数据的管理、共享和触发。同时,它也非常适合于长期维护的项目。希望这篇文章可以对大家有所帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedad9bb5cbfe1ea0610ca9


猜你喜欢

  • npm 包 @shopify/find-duplicate-dependencies-plugin 使用教程

    在开发前端应用程序时,通常需要使用许多依赖项(dependencies)来帮助我们完成工作。但有时候,我们可能会不小心重复安装了某些依赖项,这可能会导致一些意想不到的问题,例如程序运行得更慢,或者冲突...

    4 年前
  • npm 包 @shopify/magic-entries-webpack-plugin 使用教程

    前言 在前端开发中,我们经常使用 Webpack 进行模块化管理和打包。随着项目的增长,Webpack 打包入口的数量也会随之增加,管理起来就会变得十分麻烦。这时候,我们可以使用 @shopify/m...

    4 年前
  • npm包 browser-unhandled-rejection 使用教程

    简介 browser-unhandled-rejection 是一款用于捕获浏览器未处理的 Promise rejection 的 npm 包。在前端开发中,我们常常使用 Promise 进行异步操作...

    4 年前
  • npm 包 formdata-polyfill 使用教程

    前言 在当今的 Web 开发中,表单数据的处理是一个非常常见的操作。其中,FormData 对象是一个很强大的工具,可以非常方便地处理表单数据。但由于历史原因,这个工具在一些老版本的浏览器中并不被支持...

    4 年前
  • npm包@shopify/polyfills使用教程

    简介 在现代网站的开发中,前端开发人员常常需要解决一些浏览器兼容性的问题。为了解决这些问题,我们可以使用@shopify/polyfills npm包。@shopify/polyfills是一个Jav...

    4 年前
  • npm 包 @shopify/postcss-plugin 使用教程

    PostCSS 是一个基于 JavaScript 的 CSS 处理器,能够帮助开发者自动完成 CSS 预处理、添加浏览器前缀等操作,提高开发效率。而 @shopify/postcss-plugin 是...

    4 年前
  • npm 包 @shopify/prettier-config 使用教程

    在前端开发中,代码风格的一致性是非常重要的,这不仅能够提高代码可读性,也能够简化维护工作。因此,前端开发者们往往会选择使用代码格式化工具来规范自己的代码风格。本文将介绍一个非常实用的 npm 包:@s...

    4 年前
  • npm包@shopify/network使用教程

    介绍 npm 是一个包管理工具,可以方便地安装、升级、删除、查找各种 JavaScript 包。@shopify/network 是 Shopify 内部使用的一个网络请求库,目的是提供一种快捷、可定...

    4 年前
  • npm 包 @shopify/react-idle 使用教程

    前言 在前端开发中,我们经常需要对用户的空闲状态进行检测,例如如果用户在一段时间内没有操作网页,我们需要执行某些操作,例如自动退出、显示提示信息等。在这种情况下,我们可以使用 @shopify/rea...

    4 年前
  • npm 包 @shopify/react-intersection-observer 使用教程

    Intersection Observer API 是一个 JavaScript API,可以让开发者在元素可见性方面更加精确、更为高效地编写代码。@shopify/react-intersectio...

    4 年前
  • npm 包 @shopify/react-async 使用教程

    在现代 web 开发中,异步加载数据和组件是必不可少的。React 是一种非常流行的前端框架,它提供了丰富的异步加载数据和组件的解决方案。其中一个比较流行的库是 @shopify/react-asyn...

    4 年前
  • npm 包 @shopify/react-cookie 使用教程

    简介 在前端应用中,cookie 是一个常见的功能,它可以存储和读取用户的数据和信息,用于实现用户登录、记住密码等功能。而 @shopify/react-cookie 是一个 npm 包,提供了对 c...

    4 年前
  • npm 包 @shopify/react-universal-provider 使用教程

    简介 @shopify/react-universal-provider 是一个 npm 包,它提供了一种让某些 React 组件在服务端渲染和客户端渲染时共享数据的方式。

    4 年前
  • npm 包 @shopify/react-network 使用教程

    在基于 React 开发前端应用时,网络请求是经常需要用到的功能。而一个好的网络请求库可以帮助我们更高效地完成请求。@shopify/react-network 是一个基于 React 的网络请求库,...

    4 年前
  • npm 包 node-gzip 使用教程

    npm 包 node-gzip 是一个用于在 Node.js 中压缩或解压缩数据的包。它可以有效地减小数据传输的大小,从而提高页面的加载速度和性能。本文将为大家介绍如何使用 node-gzip 包进行...

    4 年前
  • npm 包 @types/node-gzip 使用教程

    简介 @types/node-gzip 是一个 npm 包,用于在 TypeScript 项目中使用 Node.js gzip 模块。该包提供了完整的 TypeScript 类型定义,使得开发者能够方...

    4 年前
  • npm 包 @shopify/sewing-kit-koa 使用教程

    前言 在前端开发中,使用 Koa 这样的 web 应用框架来构建服务器端应用已经成为非常普遍的做法。然而,对于一些特定的应用场景,我们可能需要更进一步地对 Koa 进行定制和扩展,以满足我们的需求。

    4 年前
  • npm 包 @shopify/jest-koa-mocks 使用教程

    介绍 在前端开发中,我们经常需要使用到模拟后端接口的数据,以便于前端开发和调试。而在使用 Jest 进行单元测试时,我们也需要模拟请求,来提高代码覆盖率和测试效率。

    4 年前
  • npm 包 @types/webpack-virtual-modules 使用教程

    介绍 在前端开发中,Webpack 是一个非常重要的工具,它可以帮助我们处理很多任务,比如模块化、打包、压缩等等。其中,Virtual Modules 功能是一个很实用的特性,它可以让我们在运行时动态...

    4 年前
  • npm 包 @sewing-kit/plugin-package-typescript 使用教程

    前言 在前端开发中,我们经常需要使用 TypeScript 来编写高质量的代码。但是,使用 TypeScript 带来了一些额外的工具链复杂性,例如类型检查、编译等。

    4 年前

相关推荐

    暂无文章