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的一个重点。
React入门---组件嵌套-5的更多相关文章
- React入门--------组件的生命周期
Mounting/组件挂载相关: componentWillMount componentDidMount Updating/组件更新相关: componentWillReceiveProps sho ...
- React入门--------组件API
setState 参数:nextState(object),[callback(function)] 设置nextState的某个键值.通常如果希望在某个事件或某个回调中来重新渲染组件,setStat ...
- React入门---组件-4
组件:网页可以分为多个模块,比如头部,底部,分享等各种模块,这些模块在其他页面也可能会用到,我们把这些分开,每一个模块当作一个组件,进行复用. 接下来直接以头部 header作为一个组件来进行demo ...
- react入门-组件方法、数据和生命周期
react组件也像vue一样,有data和methods,但是写法就很不同了: <!DOCTYPE html> <html lang="en"> <h ...
- react入门----组件的基础用法
1.组件 <!-- React 允许将代码封装成组件(component),然后像插入普通 HTML 标签一样,在网页中插入这个组件.React.createClass 方法就用于生成一个组件类 ...
- react 实现组件嵌套以及子组件与父组件之间的通信
当子组件触发onChange事件时,实际调用的是父组件中的handelSelect函数,通俗来说就是父组件通过属性handleSelect实现与子组件之间的通信. 父组件:SignupForm 子组件 ...
- React入门---基础知识-大纲-1
-----------------在慕课网学习react入门笔记-------------- ---------博主边学边记录,手把手进行学习及记录---------- --------------- ...
- 5. React 组件的协同使用 组件嵌套和Mixin
组件是React的核心,构建大型项目时多个组件之间需要进行协同使用.可以从横向和纵向两个角度来实现组件的协同使用,纵向的协同使用就是组件嵌套,横向的协同使用就是Mixin(抽取公共方法 ...
- React创建组件的三种方式比较和入门实例
推荐文章: https://www.cnblogs.com/wonyun/p/5930333.html 创建组件的方式主要有: 1.function 方式 2.class App extends Re ...
随机推荐
- linux下的权限控制
终于还是要弄服务器了,这是多年前用fedora的时候整理的,也贴出来,顺便也再复习一下. 先来了解一下文件属性,在shell环境里输入:ls -l 可以查看当前目录文件.如:drwxr-xr-x. 1 ...
- Appium和Robotium在文字输入上的区别
Appium和Robotium在文字输入上的区别 Appium和Robotium在对文本框进行输入时有一定的区别: Appium在输入文字时需要调用系统键盘 Robotium在输入文字是根本不需要 ...
- 第一章开发简单的Java应用程序
1.什么是程序? 程序一词来源于生活,通俗点讲就是把生活的的事用程序编写出来 并执行. 2.为什么要学习Java呢? Java是Sun Microsystems于1995年推出的高级编程语言 Java ...
- Hibernate基础学习(二)—Hibernate相关API介绍
一.Hibernate的核心接口 所有的Hibernate应用中都会访问Hibernate的5个核心接口. (1)Configuration接口: 配置Hibernate,启动Hi ...
- error C4996: 'swprintf': swprintf has been changed to conform with the ISO C standard,set _CRT_NON_CONFORMING_SWPRINT
在VS2013上运行一个简单程序时,出现了error C4996: 'swprintf': swprintf has been changed to conform with the ISO C st ...
- 嵌入javascript脚本的位置
JavaScript脚本可以放在HTML文档任何需要的位置.一般来说,可以在<head>与</head>.<body>与</body>标记对之间按需要放 ...
- TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。
#三次握手 客户端向服务器端发送SYN包,客户端进入SYN_SEND状态 服务器端收到客户端发送的包返回ACK+SYN包,服务器端进入SYN_RECV状态 客户端收到服务器端返回的包再发回ACK包,客 ...
- ios系统判断某些适配 __IPHONE_OS_VERSION_MAX_ALLOWED
由于app的最新设计字体是ios9之后的平方字体,但app最低支持ios7,so...想在常量配置文件类里统一适配下字体,如下: //适配字体,ios9及以上系统使用新字体--平方字体 #if __I ...
- Objective-C 实用关键字详解1「面试、工作」看我就 🐒 了 ^_^.
在写项目 或 阅读别人的代码(一些优秀的源码)中,总能发现一些常见的关键字,随着编程经验的积累大部分还是知道是什么意思 的. 相信很多开发者跟我当初一样,只是基本的常用关键字定义属性会使用,但在关键字 ...
- 仿QQ空间和微信朋友圈,高解耦高复用高灵活
先看看效果: 用极少的代码实现了 动态详情 及 二级评论 的 数据获取与处理 和 UI显示与交互,并且高解耦.高复用.高灵活. 动态列表界面MomentListFragment支持 下拉刷新与上拉加载 ...