zoukankan      html  css  js  c++  java
  • React入门---组件嵌套-5

    组件嵌套

    我们现在需要组件嵌套,所以要创建其他组件,目前有一个头部组件,在./components/header.js;

    接下来在components文件中创建:底部组件footer.js 和主体组件BodyIndex.js

    项目框架应该为:

    底部组件footer.js 和主体组件BodyIndex.js代码编译:

    1. header.js (之前有编译过)

    import React from 'react';
    import ReactDOM from 'react-dom';
     //创建一个类 ComponentHeader 相当于继承react里component的子类
     //export default 输出这个类
    export default class ComponentHeader extends React.Component{
        //render() 解析类的一个输出
        render(){
            return(
                    <div>
                        <h1>这是头部</h1>
                    </div>
                );
        }
    }

    2. footer.js

    import React from 'react';
    import ReactDOM from 'react-dom';
    
    export default class ComponentFooter extends React.Component{
        render(){
            return(
                    <div>
                        <h1>这里是底部</h1>
                    </div>
                )
        }
    }

    3.BodyIndex.js

    import React from 'react';
    import ReactDOM from 'react-dom';
    
    export default class BodyIndex extends React.Component{
        render(){
            return(
                    <div>
                        <h1>这里是主体内容部分</h1>
                    </div>
                )
        }
    }

    将这个三个组件都编译好之后,与Index.js进行关联

    4. Index.js

    var React = require('react');
    var ReactDOM = require('react-dom');
    //把刚才定义的头部引用进来 from后面写路径
    import ComponentHeader from './components/header'; 
    //把刚才定义的底部引用进来 from后面写路径
    import ComponentFooter from './components/footer.js';
    //把刚才定义的主体引用进来 from后面写路径
    import BodyIndex from './components/BodyIndex.js';
    
    class Index extends React.Component{
        //在这里解析类
        render(){
            return(
                //里面分别是 头部 主体 底部
                <div>
                    <ComponentHeader/> 
                    <BodyIndex/>       
                    <ComponentFooter/> 
                </div>
                );
        }
    }
    //与app.html进行一个绑定 
    ReactDOM.render(<Index/>,document.getElementById('test'));

    最后,在CMD里面进入项目文件夹,运行webpack-dev-server 即可实现简单的组件嵌套。

    组件嵌套可以用变量代替:

    render(){
            var component = <ComponentHeader/>;
            return(
                //里面分别是 头部 主体 底部
                <div>
                    {component}
                    <BodyIndex/>       
                    <ComponentFooter/> 
                </div>
                );
        }

    这个和上面显示出来的是一样的;

    问题:那用变量代替有什么用呢?

      例如:可以进行登录和未登录的一个试图切换,下面写一段伪代码,加强理解

    render(){
            var component;
                if(用户已登录){
                    //已登录
                    component = <ComponentLoginHeader/>
                }else{
                    //未登录
                    component = <ComponentHeader/>
                }
    
            return(
                //里面分别是 头部 主体 底部
                <div>
                    {component}
                    <BodyIndex/>       
                    <ComponentFooter/> 
                </div>
                );
        }

    这样一来,我们就能发现组件化开发的好处,代码简洁,各自组件管理各自逻辑的处理,比如页脚变更,只需进行footer.js里面一处的修改,整个项目引用了的地方都会进行变更,这是一个非常好的思想,也是React的一个重点。

  • 相关阅读:
    Java 实现线程安全的三种方式
    tomcat启动时报EOFException错误的解决方式
    mysql优化——show processlist命令详解
    mysql数据库的锁有多少种,怎么编写加锁的sql语句
    java中的int与byte的转化
    JDK配置环境变量
    Eclipse32位官网下载地址
    js正则表达式匹配
    身份证号校验方法
    使用反射将JavaBean转为Map
  • 原文地址:https://www.cnblogs.com/azedada/p/6837118.html
Copyright © 2011-2022 走看看