react目录结构、demo实例详解、属性数据绑定方式
1、目录结构

2、demo实例详解
a)创建Home.js
import React, { Component } from 'react';
//创建一个组件必须要集成Component组件,且组件名称要和文件名称一直
class Home extends Component{
/*构造函数用于数据的定义*/
constructor(props){
super(props);/*用于父子组件传值 ,固定写法*/
this.state={
name:"张三",
age:''
}
}
// 写jsx语法,同时绑定数据 ;render(){模板,主要是jsx语法}
render() {
return(
<div> 你好 Home组件
<p>name:{this.state.name}</p> //{this.state.name}绑定数据
<p>age:{this.state.age}</p>
</div>
)
}
}
//将组件暴露,供别的组件使用
export default Home;
b)在App.js入口组件引入Home组件
/**
* 1、引入React
* 2、创建一个类,集成Component
* 3、使用render()函数的return()方法包含jsx语句
* jsx语句:js与html混合语言编程
*/ import React, { Component } from 'react';
import logo from './assets/images/logo.svg';
import './assets/css/App.css'; //引入组建
import Home from './components/Home'; /**
* App为一个入口组件
*/
class App extends Component {
//render() 模板 采用jsx语法
render() {
return (
<div className="App">
你好react
挂在Home组件
<Home/>
<h2>react组件里面的所有节点要被根节点包含</h2>
</div>
);
}
} export default App;
3、属性数据绑定方式
a)知识点
、所有的模板要被一个根节点包含起来
、模板元素不要加引号
、{}绑定数据
、绑定属性注意:
class 要变成 className
for 要变成 htmlFor
style属性和以前的写法有些不一样
<div style={{'color':'blue'}}>{this.state.title}</div> //以前写法
<div style={{'color':this.state.color}}>{this.state.title}</div> //react写法
、循环数据要加key
方式一:定义变量
let listResult = this.state.list.map(function (value,key) {
return <li key={key}>{value}</li>
})
绑定方式:{listResult}
方拾二:直接绑定
{
this.state.list2.map(function (value,key) {
return <li>{value.title}</li>
})
} 、组件的构造函数中一定要注意 super
子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类没有自己的this对象,
而是继承父类的this对象,然后对其进行加工。如果不调用super方法,子类就得不到this对象
constructor(props){
super(props); /*用于父子组件传值 固定写法*/
this.state={
userinfo:'张三'
}
} 、组件名称首字母大写、组件类名称首字母大写
b)操作案例
import React, { Component } from 'react';
import '../assets/css/Home.css';
import logo from '../assets/images/logo.svg' //引入本地图片
//创建一个组件必须要集成Component组件,且组件名称要和文件名称一致
class Home extends Component{
/*构造函数用于数据的定义*/
constructor(props){
super(props);/*用于父子组件传值 ,固定写法*/
this.state={
name:"张三",
age:'',
msg:"我是一个Home组件",
title:"我是标题",
color:'red',
style:{
color: 'red',
fontSize:'40px'
},
list:['','',''],
list2:[
{title: "新闻111"},
{title: "新闻222"},
{title: "新闻333"}
]
}
}
// 写jsx语法,同时绑定数据 ;render(){模板,主要是jsx语法}
render() {
let listResult = this.state.list.map(function (value,key) {
return <li key={key}>{value}</li>
})
return(
<div> 你好 Home组件
<p>name:{this.state.name}</p>
<p>age:{this.state.age}</p>
<div title=""> 我的div</div>
<div title={this.state.title}>绑定属性</div>
<div className='red'>这个是一个红色的div,要使用className,而不是class</div>
<div className={this.state.color}>这个是一个红色的div,className绑定数据,使用对象方式获取</div>
<br/>
<p>label要使用htmlFor</p>
<label htmlFor="name">姓名</label>
<input id = "name"/>
<br/>
<div style={{'color':'red'}}>style原始的样式</div>
<div style={this.state.style}>react style样式绑定数据</div>
<p>引入本地图片</p>
<img src={logo}/>
<img src={require('../assets/images/logo.svg')}/>
<p>引入远程图片</p>
<img src="https://img.shields.io/badge/cnpm-0.0.1-red.svg?style=flat-square"/>
<p>遍历list方式,通过map函数遍历</p>
<ul>
{listResult}
</ul>
<p>遍历list方式,通过map函数遍历</p>
<ur>
{
this.state.list2.map(function (value,key) {
return <li>{value.title}</li>
})
}
</ur>
</div>
)
}
}
//将组件暴露,供别的组件使用
export default Home;
react目录结构、demo实例详解、属性数据绑定方式的更多相关文章
- Tomcat的目录结构和配置文件详解
本文转载: https://www.zybuluo.com/1234567890/note/515235 参考帖子: Tomcat(一):基础配置详解 Tomcat服务器中配置多个域名,访问不同的we ...
- Nginx目录结构与配置文件详解
Nginx安装 具体安装nginx请移步:[nginx部署] 安装依赖 安装pcre依赖软件 [root@ubuntu ~]# yum install -y pcre pcre-devel //外网情 ...
- Nginx安装,目录结构与配置文件详解
1.Nginx简介 Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设 ...
- Linux:apache目录结构和配置文件详解
bin目录下的常见命令 conf目录 htdocs目录 logs目录 httpd.conf文件解析. 如果后期自己新创建了新的站点目录,就要重新增加对应的目录权限配置 extra/目录下配置文件解析 ...
- form表单提交三种方式,demo实例详解
第一种:使用type=submit 可以直接提交 <html> <head> <title>submit直接提交</title> </head& ...
- 官网实例详解-目录和实例简介-keras学习笔记四
官网实例详解-目录和实例简介-keras学习笔记四 2018-06-11 10:36:18 wyx100 阅读数 4193更多 分类专栏: 人工智能 python 深度学习 keras 版权声明: ...
- Cocos2d-x 3.X手游开发实例详解
Cocos2d-x 3.X手游开发实例详解(最新最简Cocos2d-x手机游戏开发学习方法,以热门游戏2048.卡牌为例,完整再现手游的开发过程,实例丰富,代码完备,Cocos2d-x作者之一林顺和泰 ...
- 【python3+request】python3+requests接口自动化测试框架实例详解教程
转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...
- python+requests接口自动化测试框架实例详解
python+requests接口自动化测试框架实例详解 转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...
随机推荐
- 神经网络优化算法:梯度下降法、Momentum、RMSprop和Adam
最近回顾神经网络的知识,简单做一些整理,归档一下神经网络优化算法的知识.关于神经网络的优化,吴恩达的深度学习课程讲解得非常通俗易懂,有需要的可以去学习一下,本人只是对课程知识点做一个总结.吴恩达的深度 ...
- 06-spring框架—— Spring 与Web
在 Web 项目中使用 Spring 框架,首先要解决在 web 层(这里指 Servlet)中获取到 Spring容器的问题.只要在 web 层获取到了 Spring 容器,便可从容器中获取到 Se ...
- java8学习之Stream分组与分区详解
Stream应用: 继续举例来操练Stream,对于下面这两个集合: 需求是:将这两个集合组合起来,形成对各自人员打招呼的结果,输出的结果如: "Hi zhangsan".&quo ...
- Mongodb的基本操作-数据库 集合 文档的增删改查
数据库操作: //查看有哪些数据库 > show dbs local 0.078GB mydb 0.078GB //use操作将切换到一个数据库 如果数据库存在将直接切换 如果不存在 那么 ...
- dlerror和dlclose用法
dlclose() 1. 包含头文件 #include<dlfcn.h> 2. 函数定义 int dlclose(void *handle) dlclose用于关闭指定句柄的动态链接库, ...
- 未能从程序集“netstandard, Version=2.0.0.0......”中加载类型“...”。
需要在机器上安装:4.7.1的framework 下载地址: https://www.microsoft.com/zh-CN/download/details.aspx?id=56116 说明:n ...
- Nagios-报错:UNKNOWN Can't connect to the JVM:
原因: 由于手动开启nrpe程序,产生临时文件,需要把产生的多余文件删除. [root@nagios ~]# ll /tmp/drwx------ 3 root root 17 Aug 12 13:4 ...
- jquery滚动到指定位置
利用jquery实现页面可视区滚动到指定位置.直接上代码 //滚动到指定位置 function scrollTo(element,speed) { if(!speed){ speed = 300; } ...
- List集合的三个实现类比较
1. ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 2. Vector 底层数据结构是数组,查询快,增删慢 线程安全,效率低 3. LinkedList 底层数据结构是链 ...
- 【封装工程】OI/ACM常用封装
前言 笔者有的时候无聊,就将一些奇怪的东西封装起来. 范围主要是在\(OI\)或者\(ACM\)中的常见数据结构等. 随着笔者的能力的提升,可能会对原来的封装程序进行修改,并且保留原来的版本. [ST ...