React实现局部刷新

【项目结构】

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

 

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

2.组件 -> src/coms

3.布局 -> src/layout

4.路由 -> src/routes

React实现局部刷新_第1张图片

 

【流程解析】

流程: 入口文件 -> 路由 -> 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 = () => (
    
        
            
            
            
            
        
    
);

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 (
        
        
            
            
                {
      /*定义了项目的link,会按照路由走*/}
                Item1
            
            
        
        
          
Header
{ /*Analysis.js文件引用了BasicLayout,并把自己的全部子节点(子组件)传过来*/} { this.props.children}
Ant Design ©2018 Created by Ant UED
) } }

 

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

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

Analysis Page

) }

 

 

【效果】

React实现局部刷新_第2张图片

 

 

【总结】

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

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

 

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

你可能感兴趣的:(javascript)