day02-Ant Design以及Ant Design Pro入门

news2024/11/29 22:42:49

课程简介

  • ReactJS入门,Model
  • Ant Design 入门
  • Ant Design Pro 入门

1ReactJS入门

1.1Model

1.1.1、分层

上图中,左侧是服务端代码的层次结构,由 Controller Service Data Access 三层组成服务端系统:
  • Controller 层负责与用户直接打交道,渲染页面、提供接口等,侧重于展示型逻辑。
  • Service 层负责处理业务逻辑,供 Controller 层调用。
  • Data Access 层顾名思义,负责与数据源对接,进行纯粹的数据读写,供 Service 层调用。
上图的右侧是前端代码的结构,同样需要进行必要的分层:
  • Page 负责与用户直接打交道:渲染页面、接受用户的操作输入,侧重于展示型交互性逻辑。
  • Model 负责处理业务逻辑,为 Page 做数据、状态的读写、变换、暂存等。
  •  Service 负责与 HTTP 接口对接,进行纯粹的数据读写。

1.1.2、使用DVA进行数据分层管理

dva 是基于 redux redux-saga react-router 的轻量级前端框架。
官网: https://dvajs.com/
对于 dva 我们不做过多详细的讲解,我们只要做到能够使用起来就可以了。对于想要全面学习 dva 框架的同学可自行研究。
首先,我们先将 dva 框架引入进来,由于 umi dva 进行了整合,所以导入就变得非常简单了。
config.js 文件中进行配置:
export default {
    plugins: [
        ['umi-plugin-react', {
            dva: true // 开启dva功能
        }]
    ]
};
接下来,创建 model 文件,在 umi 中,约定在 src/models 文件夹中定义 model ,所以,在该文件夹下创建ListData.js 文件:
编写内容:
export default {
    namespace: 'list',
    state: {
        data: [1, 2, 3],
        maxNum: 3
    }
}
下面对 List.js 进行改造:
import React from 'react';
import { connect } from 'dva';
const namespace = 'list';
const mapStateToProps = (state) => {
    const listData = state[namespace].data;
    return {
        listData
    };
};
@connect(mapStateToProps)
class List extends React.Component{
    render(){
        return (
            <div>
                <ul>
                    {
// 遍历值
                        this.props.listData.map((value,index) => {
                            return <li key={index}>{value}</li>
                        })
                    }
                </ul>
                <button
                    onClick={()=>{ //为按钮添加点击事件
// let maxNum = this.state.maxNum + 1;
// let list = [...this.state.dataList, maxNum];
// this.setState({ //更新状态值
// dataList : list,
// maxNum : maxNum
// });
                    }}>
                    添加
                </button>
            </div>
        );
    }
}
export default List;

测试:

可以看到,效果是一样的。
流程说明:

1. umi框架启动,会自动读取models目录下model文件,即ListData.js中的数据
2. @connect修饰符的第一个参数,接收一个方法,该方法必须返回{},将接收到model数据
3. 在全局的数据中,会有很多,所以需要通过namespace进行区分,所以通过state[namespace]进行获取数据
4. 拿到model数据中的data,也就是[1, 2, 3]数据,进行包裹{}后返回
5. 返回的数据,将被封装到this.props中,所以通过this.props.listData即可获取到model中的数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1166020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一分钟生成PPT,利用人工智能快速提高办公效率(无需第三方插件)

人工智能技术的发展正以惊人的速度改变着我们的世界&#xff0c;今天给大家介绍下利用ChatGPT快速生成PPT的方法&#xff0c;它能够帮助你一键生成PPT内容和漂亮的PPT文档&#xff0c;无需繁琐的设计和排版&#xff0c;只需要与ChatGPT交流&#xff0c;你就能轻松拥有一份令人赞…

社区论坛在线交流网站系统源码+SEO优化 带前后端完整搭建教程

大家好&#xff0c;今天罗峰来给大家分享一款社区论坛在线交流网站系统源码。社区论坛在线交流在当下时时代还是很火的。现在人们对于在线交流和互动的需求不断增加。社区论坛作为一种传统的在线交流方式&#xff0c;仍然有着广泛的市场需求和用户群体。然而&#xff0c;现有的…

redis1之安装redis,启动,常用数据结构

目录 redis安装与启动、常见数据结构 启动 Redis客户端 数据结构与常见的命令 redis的通用命令 String类型的用法 Hash命令的用法 List命令 Set命令 SortedSet类型用法 redis安装与启动、常见数据结构 1&#xff0c;在linux上安装上gcc的依赖&#xff0c;我这里是centos7.6…

为什么边缘计算是能源行业缺失的一环

关键要点 展望未来&#xff0c;边缘计算将使能源部门能够更好地应对不断增长的能源需求的挑战&#xff0c;提高资源利用率&#xff0c;并实现更可持续的能源生态系统。 能源行业正在经历重大变革&#xff0c;因为它面临着许多挑战&#xff0c;例如整合可再生能源、电力需求激增…

thinkPHP5怎么打开页面调试,查看网页运行时间

开启trace 在config.php中找到 ‘app_trace’ > false, 修改为&#xff1a; ‘app_trace’ > true,

中国统计年鉴,覆盖2016-2022年数据,超全数据一览!

今天分享一个超详细中国统计年鉴&#xff0c;覆盖2016-2022年数据&#xff0c;包含多方面数据及指标&#xff0c;需要可自取 网站搜索“citybox城市沙盒”或同名wechat订阅号可自行获取 数据信息&#xff1a; 数据名称: 中国统计年鉴 数据格式: Html、Excel 数据时间: 20…

chromedp库编写程序

步骤1&#xff1a;首先&#xff0c;我们需要导入chromedp库&#xff0c;以便使用它来下载网页内容。 import chromedp 步骤2&#xff1a;然后&#xff0c;我们需要创建一个函数&#xff0c;该函数接受一个URL作为参数&#xff0c;并使用chromedp库下载该URL的内容。 func do…

有什么好用的日常事务管理软件?的修APP对日常管理有什么帮助?

在快节奏的现代生活中&#xff0c;我们每天都要面对各种各样的工作任务和琐事。有时候&#xff0c;我们可能会因为忘记重要事项或者没有规划好时间而导致工作效率低下。为了解决这个问题&#xff0c;我为大家推荐一款日常管理神器——的修APP。   的修APP是一款简单易用的日常…

InfiniBand 的前世今生

今年&#xff0c;以 ChatGPT 为代表的 AI 大模型强势崛起&#xff0c;而 ChatGPT 所使用的网络&#xff0c;正是 InfiniBand&#xff0c;这也让 InfiniBand 大火了起来。那么&#xff0c;到底什么是 InfiniBand 呢&#xff1f;下面&#xff0c;我们就来带你深入了解 InfiniBand…

Java——并发编程(CAS、Lock和AQS)

1、Java Concurrent API 中的 Lock 接口(Lock interface)是什么&#xff1f;对比同步它有什么优势&#xff1f; 答&#xff1a;Lock 接口比同步方法和同步块提供了更具扩展性的锁操作。他们允许更灵活的结构&#xff0c;可以具有完全不同的性质&#xff0c;并且可以支持多个相…

Scala中类的继承、抽象类和特质

1. 类的继承 1.1 Scala中的继承结构 Scala 中继承关系如下图&#xff1a; Any 是整个继承关系的根节点&#xff1b; AnyRef 包含 Scala Classes 和 Java Classes&#xff0c;等价于 Java 中的 java.lang.Object&#xff1b; AnyVal 是所有值类型的一个标记&#xff1b; Nul…

AI:51-基于深度学习的电影评价

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌本专栏包含以下学习方向: 机器学习、深度学…

渗透测试工具(AntSword)

软件安装 蚁剑渗透测试工具分为AntSword-Loader和antSword两部分 文件下载&#xff1a; AntSword-Loader下载地址&#xff1a;GitHub - AntSwordProject/AntSword-Loader: AntSword 加载器 antSword下载地址&#xff1a;Releases AntSwordProject/antSword GitHub 使用&a…

公司内网知识问答库系统源码 完全开源可二次开发 带完整搭建教程

随着公司规模的扩大和业务复杂性的增加&#xff0c;员工需要更快更有效地获取和共享知识。一个内部的知识问答库系统可以帮助公司提高员工的工作效率和知识管理水平。 有效的内部沟通是公司成功的关键因素之一。通过创建一个内部的知识问答平台&#xff0c;可以鼓励员工之间的…

入门指南|机器人流程自动化(RPA)在数字营销中的8大应用

虽然现在的话题度不及ChatGPT&#xff0c;但近两年最火的MarTech工具非RPA莫属。今天我们就来看看&#xff1a;资本宠儿、号称世界500强中超过70%的企业都在使用、老板心中最佳员工RPA到底是什么&#xff1f;以及在营销与运营中有哪些应用&#xff1f; 01 RPA是什么&#xff1f…

Uni-App 快捷登录

uniapp 实现一键登录前置条件: 开通uniCloud, 开通一键登录功能参考的文档 : 官网 - 一键登录uniapp指南 : https://uniapp.dcloud.net.cn/univerify.html#%E6%A6%82%E8%BF%B0 官网 - 一键登录开通指南 : https://ask.dcloud.net.cn/article/37965 官网 - unicloud使用指南 htt…

如何使用JDBC操作数据库?一文带你吃透JDBC规范

文章目录 1. 前言2. JDBC 概述2.1 概念2.2 优点 3. JDBC 快速入门4. JDBC API详解4.1 DriverManager4.1.1 注册驱动4.1.2 获取连接 4.2 Connection4.2.1 获取执行sql的对象4.2.2 事务管理 4.3 Statement4.4 ResultSet4.5 PreparedStatement4.5.1 sql注入问题4.5.2 preparedStat…

不用动脑小白也能制作出精美的电子杂志

随着互联网技术的发展和微信的普及程度&#xff0c;电子杂志制作已经受到越来越多人的关注&#xff0c;毕竟电子杂志的阅读便利性是纸质杂志无法比拟的。那如何制作一本精美的电子杂志呢&#xff1f; 这其实很easy&#xff0c;可以使用在线电子杂志制作平台FLBOOK &#xff0c…