【项目结构】

流程: 入口文件 -> 路由 -> layout -> Analysi/Monitor/Workspace

1.入口文件 -> src/index.js

2.组件 -> src/coms

3.布局 -> src/layout

4.路由 -> src/routes

【流程解析】

流程: 入口文件 -> 路由 -> layout -> Analysi/Monitor/Workspace

1.路由部分

//import React from 'react'; 引入类
//import { Component } from 'react';  引入对象
import React, { Component } from 'react';
import {HashRouter, Route, Switch} from 'react-router-dom';//引入布局和子组件
import BasicLayout from '../layout/layout';
import Analysis from '../coms/Analysis';
import Monitor from '../coms/Monitor';
import Workplace from '../coms/Workplace';//分配路由
const BasicRoute = () => (<HashRouter><Switch><Route exact path="/" component={BasicLayout}/><Route exact path="/Analysis" component={Analysis}/><Route  path="/Monitor" component={Monitor}/><Route  path="/Workplace" component={Workplace}/></Switch></HashRouter>
);export default BasicRoute;

2.布局部分(重点)

import React, { Component } from 'react';
import  {Layout ,Menu,Icon} from 'antd';
import { Router, Route, Link,HashRouter } from 'react-router-dom'
import 'antd/dist/antd.min.css'
import BasicRoute from '../routes/router';const { Header, Footer, Sider, Content } = Layout;export default class BasicLayout extends Component {render() {return (<Layout><Sider width={256} style={{ minHeight: '100vh', color: 'white' }}><Menu theme="dark" mode="inline" >{/*定义了项目的link,会按照路由走*/}<Menu.Item><Link to="/Analysis">Item1</Link></Menu.Item></Menu></Sider><Layout ><Header style={{ background: '#fff', textAlign: 'center', padding: 0 }}>Header</Header><Content style={{ margin: '24px 16px 0' }}><div style={{ padding: 24, background: '#fff', minHeight: 360 }}>{/*Analysis.js文件引用了BasicLayout,并把自己的全部子节点(子组件)传过来*/}{this.props.children}</div></Content><Footer style={{ textAlign: 'center' }}>Ant Design ©2018 Created by Ant UED</Footer></Layout></Layout>
    )}
}

3.子组件(Analysis.js) (出错点)

import React from 'react';
import BasicLayout from '../layout/layout';
export default () => {//用BasicLayout标签包裹,内容传到layout.js的this.props.children部分return (<BasicLayout><h1>Analysis Page</h1></BasicLayout>)
}

【效果】

【总结】

按照antd官网的教程走了一遍,发现不能局部刷新

原因在于官网用了umi框架。我是自己配置,有很多遗漏,导致子组件没有正确的传递到layout中。

转载于:https://www.cnblogs.com/remly/p/10260301.html

React实现局部刷新相关推荐

  1. react中列表渲染的局部刷新

    最近在写demo的时候遇到一个更新列表中某个的对象的某个值,最期待的结果肯定是局部刷新,但是我们往往在改变值之后会遇到全局都刷新的问题,以下为个人实验出来的一个小技巧. 首先我有以下数据需要通过rea ...

  2. redux 局部刷新_如何使用Redux Observables和刷新令牌API获取新的访问令牌

    redux 局部刷新 by Sachin Kumar 由Sachin Kumar 如何使用Redux Observables和刷新令牌API获取新的访问令牌 (How to get a new acc ...

  3. php div图片局部刷新,前端jquery 后端 thinkphp 实现局部刷新

    本例  用jquery 实现 通过把一个标签的变量传递给后台处理后,然后返回给前台另外一个变量 大致流程是这样的:前端编写html代码 ,加入要局部刷新的 jquery代码并指定要响应的url, 首先 ...

  4. struts2 jquery ajax 局部刷新遇到的各种问题

    我们的网站一开始都是由前台提交表单到action,每次一个小操作整个页面都会刷新,影响用户体验,这次由我实现部分功能的局部刷新,但是初学ajax遇到不少问题 1.我们在struts.xml外扩展了一个 ...

  5. 动态生成能够局部刷新的验证码【AJAX技术】---看了不懂赔你钱

    在开发JavaWeb应用时,动态生成能够局部刷新的验证码是一项必须的功能,在这里我们将会详细的讲解如何实现这一功能. 一.涉及技术 该功能需要用到AJAX异步传输技术,这样能保证在点击"看不 ...

  6. 局部刷新时间 jsp_局部区块多个报表 TAB 页切换及局部区块的参数查询

    在企业的业务系统中,如何从纷繁复杂的数据中抽丝剥茧看到关键数据信息呢?一个重要的途径就是将企业和各部门运营中关键的 KPI 集中在一起显示,同时尽量省去在企业的各个业务系统中分别查找数据. 下面是我近 ...

  7. java验证码局部刷新_JS局部刷新图形验证码

    开发过程当中,网络安全采取的方法之一,采用验证码功能.一般在注册.登录的程序当中见得比较多.其自己在实现这一功能时,静态页面有一段调用图形验证码的PHP文件,//,验证码是随机生成的,一般将生成的验证 ...

  8. flutter怎么手动刷新_flutter局部刷新的实现示例

    局部刷新 我们在做项目的时候,都需要单独的去刷新一个值,而不是把整个界面都重绘.大家都知道setState是进行重绘的一个方法,他会执行生命周期的一个build,这将会使得整个界面来进行重绘.当然我们 ...

  9. FineReport——JS二次开发(局部刷新)

    在FR中,可以通过在form表单设置多个报表模板,然后通过对某一模板刷新实现局部刷新的功能,在cpt模板中,由于只存在一个模板,所以无法实现局部刷新. 其实,最好的局部刷新办法是自定义一个页面,然后添 ...

最新文章

  1. C#进行Visio二次开发之电气线路停电分析逻辑
  2. 前后端分离的探索(四)
  3. python pip whl 安装
  4. 当法律纽带变成“机器红线”,能让自动驾驶汽车更安全吗?
  5. java内存模型与volatile变量与Atomic的compareAndSet
  6. python迅雷远程下载页面_【教程】Chrome浏览器添加迅雷下载支持
  7. 嵌入式linux内核oops,Linux编程时遇到Oops提示该如何排查?
  8. php word组件使用方法,快速解决PHP调用Word组件DCOM权限的问题讲解
  9. [分治FFT]「CTSC2018」青蕈领主
  10. linux动态路由rip配置,配置 动态路由协议OSPF和RIPv2实现全网互通^
  11. 最最最最终极办法!解决Idea乱码问题
  12. 前端学习(477):前端简介1
  13. 数论 —— 莫比乌斯反演
  14. 零基础带你学习MySQL—多表查询笛卡尔集(二十)
  15. javaweb实训第四天下午——员工管理系统-JSPServletJDBC综合练习-CRUD
  16. 程序员面试金典——1.6像素翻转
  17. 日期判断是今天/明天/后天
  18. I2C 时序详解,精确到每一个时钟
  19. 使用 UICollectionView 实现网格化视图效果
  20. mapbox-gl添加threejs飞线

热门文章

  1. 极域电子教室学生机房管理助手(好好上课)教程
  2. 2023杭州之江中复百日誓师动员大会
  3. Kibana的基础语法
  4. 日语五十音之平假音和片假音的巧记
  5. 云计算概念活跃 浪潮软件放量涨停
  6. 英特尔GPU大牛投身AI创业/ ChatGPT公布Bug原因/ SpaceX最新估值1400亿美元…今日更多新鲜事在此...
  7. JavaSE、JavaEE和JavaME
  8. matlab中 %d,%f,%c,%s代表什么意思
  9. 邮箱-手机账号格式如何进行正则表达式校验
  10. 京东撸货--网上几百元的教程怎样辨别真假?不要被割韭菜