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

接下来直接以头部 header作为一个组件来进行demo演示组件。

下面是整体的一个项目的框架:

到现在,项目的文件夹里面有两个文件 package.json 和 webpack.config.js

1. 在项目文件夹中创建 src文件夹(源代码放这里面)

2. src文件中创建app.html文件 和 js文件夹

3. js文件夹中创建 index.js文件(入口文件夹) 和 components文件夹(用来放一些组件)

4. components文件夹中创建header.js文件(头部的一个组件,可以公用/复用)

(以上文件夹的框架是我自己练习的框架,可根据不同需要进行命名,只需要注意在配置文件中相应修改)

这个时候项目文件框架应该是这样:

解析以及各个文件的代码:

1. app.html------最后内容会放在这里

<div id="test"> 123 </div>

2. index.js------首先写最基本引入包

var React = require('react');
var ReactDOM = require('react-dom');

3. 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>
)
}
}

代码的意思:创建了一个ComponentHeader的类,通过render方法解析这个类,我们要将 return返回的内容插入到入口JS文件中,也就是index.js;

需要注意,可以给外部使用的组件定义要写:export default

4. index.js------与组件header.js关联

var React = require('react');
var ReactDOM = require('react-dom');
//把刚才定义的头部引用进来 from后面写路径
import ComponentHeader from './components/header.js'
class Index extends React.Component{
render(){
return(
       <div>
  <ComponentHeader></ComponentHeader>
       </div>
)
}
}
//与app.html进行一个绑定,即:入口的定义
ReactDOM.render(<Index/>,document.getElementById('test'));

5. CMD进入到项目文件夹 运行webpack的热加载:(在js中修改后按保存,会自动在浏览器中刷新)

webpack-dev-server

在浏览器 运行:http://localhost:8080

一个小的react-demo就运行完成了。

注意:

  组件的render方法,return返回的HTML节点必须是一个。

  下面是一个错误示范,出现了两个节点,会报错。

render(){
return(
//错误示范
<ComponentHeader></ComponentHeader>
<h2>这里头部2</h2>
)
}

  解决方法:放到一个节点里面<div></div>,如下:

render(){
return(
//正确示范
<div>
<ComponentHeader></ComponentHeader>
<h2>这里头部2</h2>
</div>
)
}

React入门---组件-4的更多相关文章

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

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

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

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

  3. React入门---组件嵌套-5

    组件嵌套 我们现在需要组件嵌套,所以要创建其他组件,目前有一个头部组件,在./components/header.js; 接下来在components文件中创建:底部组件footer.js 和主体组件 ...

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

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

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

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

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

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

  7. React入门介绍(2)- React Component-React组件

    React Component-React组件 允许用户自由封装组件是React非常突出的特性,用户可将自己创建的组件像普通的HTML标签一样插入页面,React.CreateClass方法就是用来创 ...

  8. 【React】学习笔记(一)——React入门、面向组件编程、函数柯里化

    课程原视频:https://www.bilibili.com/video/BV1wy4y1D7JT?p=2&spm_id_from=pageDriver 目录 一.React 概述 1.1.R ...

  9. reactjs入门到实战(七)---- React的组件的生命周期

    React的组件的生命周期有三个状态分别是:挂载(生产组件示例化.准备挂载到页面.挂载到页面).更新(更新值.更新DOM).和卸载(卸载后). >>>其他     getInitia ...

随机推荐

  1. 通过哨兵机制实现Redis主从配置以及java调用

    Redis版本:3.0.7 操作环境:Linux 一.redis 主从配置的作用是什么 redis主从配置,配置master 只能为写,slave只能为读,在客户端对poolconnect请求时候,, ...

  2. redis实现队列消息的ack

    由于公司提供的队列实在太过于蛋疼而且还限制不能使用其他队列,但为了保证数据安全性需要一个可以有ack功能的队列. 原生的redis中通过L/R PUSH/POP方式来实现队列的功能,这个当然是没办法满 ...

  3. Java内存泄露实例

  4. (转)Java并发编程:并发容器之ConcurrentHashMap

    下面这部分内容转载自: http://www.haogongju.net/art/2350374 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能.因为 ...

  5. Twitter数据非API采集方法

    说明:这里分三个系列介绍Twitter数据的非API抓取方法. 在一个老外的博看上看到的,想详细了解的可以自己去看原文. 这种方法可以采集基于关键字在twitter上搜索的结果推文,已经实现自动翻页功 ...

  6. 使用上传插件 Web Uploader 上传图片到七牛云(C#)

    之前有写过一篇文章,基于asp.net mvc 封装 Web Uploader 上传插件: http://www.cnblogs.com/vanteking/p/5623682.html 已经实现的功 ...

  7. 通过VMware安装Linux操作系统

    1.安装好vmvare,下载好Linux,本文采用redhat 6.5  (下载linux可参考http://www.linuxidc.com/Linux/2007-09/7399.htm) 2.选择 ...

  8. TDD 中关于mock一些理解

    最近在写代码的UT时case注意到: 在写某个类的test suit时,如果这个类既有组合(Composition),又有聚合关系(Aggregation). 组合关系(Composition):部分 ...

  9. Virtualbox mac版centos7.2 安装共享文件夹

    因为用的是mac本,在自己电脑上用virtualbox安装了centos7.2 虚拟机,为了实现与本机交换文件,需要用到贡享文件夹功能. 网上搜的时候多是windows版的,所以自己写一个mac版的. ...

  10. 【微信小程序】认识微信小程序

    目前微信小程序已经支持个人版了 罗列一下微信开发的一些资料和工具 (如果你还不了解微信小程序如何操作请点击  新手教程 )里面罗列了 开发者工具 如何使用 和 微信的基本操作 很详细 一.微信开发者工 ...