React入门---组件-4
组件:网页可以分为多个模块,比如头部,底部,分享等各种模块,这些模块在其他页面也可能会用到,我们把这些分开,每一个模块当作一个组件,进行复用。
接下来直接以头部 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的更多相关文章
- React入门--------组件的生命周期
Mounting/组件挂载相关: componentWillMount componentDidMount Updating/组件更新相关: componentWillReceiveProps sho ...
- React入门--------组件API
setState 参数:nextState(object),[callback(function)] 设置nextState的某个键值.通常如果希望在某个事件或某个回调中来重新渲染组件,setStat ...
- React入门---组件嵌套-5
组件嵌套 我们现在需要组件嵌套,所以要创建其他组件,目前有一个头部组件,在./components/header.js; 接下来在components文件中创建:底部组件footer.js 和主体组件 ...
- react入门-组件方法、数据和生命周期
react组件也像vue一样,有data和methods,但是写法就很不同了: <!DOCTYPE html> <html lang="en"> <h ...
- react入门----组件的基础用法
1.组件 <!-- React 允许将代码封装成组件(component),然后像插入普通 HTML 标签一样,在网页中插入这个组件.React.createClass 方法就用于生成一个组件类 ...
- React创建组件的三种方式比较和入门实例
推荐文章: https://www.cnblogs.com/wonyun/p/5930333.html 创建组件的方式主要有: 1.function 方式 2.class App extends Re ...
- React入门介绍(2)- React Component-React组件
React Component-React组件 允许用户自由封装组件是React非常突出的特性,用户可将自己创建的组件像普通的HTML标签一样插入页面,React.CreateClass方法就是用来创 ...
- 【React】学习笔记(一)——React入门、面向组件编程、函数柯里化
课程原视频:https://www.bilibili.com/video/BV1wy4y1D7JT?p=2&spm_id_from=pageDriver 目录 一.React 概述 1.1.R ...
- reactjs入门到实战(七)---- React的组件的生命周期
React的组件的生命周期有三个状态分别是:挂载(生产组件示例化.准备挂载到页面.挂载到页面).更新(更新值.更新DOM).和卸载(卸载后). >>>其他 getInitia ...
随机推荐
- div的优缺点
div+css优缺点 产生背景 HTML语言自HTML4.01以来,不再发布新版本,原因就在于HTML语言正变得越来越复杂化.专用化.即标记越来越多,甚至各个浏览器生产商也开发出只适合于其特定浏览 ...
- dotweb——go语言的一个微型web框架(三)路由注册
上一章我们讲了如何启动一个dotweb程序,本篇文章将介绍如何注册路由. router是dotweb用来管理路由的结构体,它提供了一些关于路由操作函数. app := dotweb.New() rou ...
- python之数据结构链表实现方式
#!/usr/bin/env python # --------------------------------------- # author : Geng Jie # email : gengji ...
- 泛型加委托在EF下的操作例子
接下来放一个用SqlBulkCopy插入数据的例子,运用了泛型委托和反射.就当好好的运用这些知识. public static void AddEntityByBulk(IList entitys,s ...
- 数位dp——hud3652
B-number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem ...
- Python Selenium设计模式-POM
前言 本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点.应用场景和核心思想有一定的理解和掌握. 为什么要用POM 基于python s ...
- MAT(Memory Analyzer Tool)使用心得
起因:最近在跟踪产品的性能问题,期间主要问题体现在JVM的内存回收问题,使用MAT工具进行JVM内存分析(也可对android 的应用内存分析) 问题描述: 1.部分后端服务在运行一段时间后会突然年老 ...
- Jackson序列化实例
参考文章 Jackson使用ContextualSerializer在序列化时获取字段注解的属性 使用BeanSerializerModifier定制jackson的自定义序列化(null值的处理) ...
- Sublime text3 设置的中文翻译
// While you can edit this file, it's best to put your changes in // "User/Preferences.sublime- ...
- 初学VUE2.0
初学VUE2.0 (个人笔记,写完后发现好乱....下期使用markdown书写.) 概述 webstorm添加对VUE的支持 http://www.jianshu.com/p/142dae4f8b5 ...