组件嵌套

我们现在需要组件嵌套,所以要创建其他组件,目前有一个头部组件,在./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的一个重点。

React入门---组件嵌套-5的更多相关文章

  1. React入门--------组件的生命周期

    Mounting/组件挂载相关: componentWillMount componentDidMount Updating/组件更新相关: componentWillReceiveProps sho ...

  2. React入门--------组件API

    setState 参数:nextState(object),[callback(function)] 设置nextState的某个键值.通常如果希望在某个事件或某个回调中来重新渲染组件,setStat ...

  3. React入门---组件-4

    组件:网页可以分为多个模块,比如头部,底部,分享等各种模块,这些模块在其他页面也可能会用到,我们把这些分开,每一个模块当作一个组件,进行复用. 接下来直接以头部 header作为一个组件来进行demo ...

  4. react入门-组件方法、数据和生命周期

    react组件也像vue一样,有data和methods,但是写法就很不同了: <!DOCTYPE html> <html lang="en"> <h ...

  5. react入门----组件的基础用法

    1.组件 <!-- React 允许将代码封装成组件(component),然后像插入普通 HTML 标签一样,在网页中插入这个组件.React.createClass 方法就用于生成一个组件类 ...

  6. react 实现组件嵌套以及子组件与父组件之间的通信

    当子组件触发onChange事件时,实际调用的是父组件中的handelSelect函数,通俗来说就是父组件通过属性handleSelect实现与子组件之间的通信. 父组件:SignupForm 子组件 ...

  7. React入门---基础知识-大纲-1

    -----------------在慕课网学习react入门笔记-------------- ---------博主边学边记录,手把手进行学习及记录---------- --------------- ...

  8. 5. React 组件的协同使用 组件嵌套和Mixin

            组件是React的核心,构建大型项目时多个组件之间需要进行协同使用.可以从横向和纵向两个角度来实现组件的协同使用,纵向的协同使用就是组件嵌套,横向的协同使用就是Mixin(抽取公共方法 ...

  9. React创建组件的三种方式比较和入门实例

    推荐文章: https://www.cnblogs.com/wonyun/p/5930333.html 创建组件的方式主要有: 1.function 方式 2.class App extends Re ...

随机推荐

  1. Node.js编程之异步

    异步操作 Node采用V8引擎处理JavaScript脚本,最大特点就是单线程运行,一次只能运行一个任务.这导致Node大量采用异步操作(asynchronous opertion),即任务不是马上执 ...

  2. 【VB超简单入门】六、基本数据类型

    接下来要介绍VB的基本数据类型,为接下来学习变量和常量准备. 计算机只能处理二进制的数据,所以无论什么数据,在CPU里面处理都是一样的,类似101010这样的机器代码,但是让我们直接去写机器代码程序, ...

  3. POPTEST老李谈JVM、JRE、JDK、java ee sdk with jdk区别

    POPTEST老李谈JVM.JRE.JDK.java ee sdk with jdk区别   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等 ...

  4. 容易忽略的z-index失效问题

    前些天写一个模仿虎牙网站幻灯片的插件,期间遇到我一直都没注意到的问题,就是z-idnex会失效的问题. 我是将幻灯片的左右按设置为float浮动的,然后在调试点击的时候发现无论怎么调高z-index都 ...

  5. Grafana中多租户设置

    Grafana中通过设置不同的组织,以及将用户分配到不同组织,来做到多租户,类似门户的概念. Grafana默认是不允许非管理员用户创建新的组织的,这个可以通过修改配置文件以允许非管理员用户创建组织: ...

  6. [Linux] PHP程序员玩转Linux系列-Linux和Windows安装nginx

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  7. getline函数(精华版)

    在我的印象中,getline函数经常出现在自己的视野里,模糊地记得它经常用来读取字符串   .但是又对它的参数不是很了解,今天又用到了getline函数,现在来细细地总结一下:   首先要明白设计ge ...

  8. ubuntu中文字符集格式转换

  9. iOS各框架功能简述以及系统层次结构简单分析

    iOS各个框架所对应的功能简单介绍 iOS系统结构层次:

  10. NodeJs之http

    创建新的服务器 创建一个简单的服务 var http = require("http"); var server = http.createServer(); server.lis ...