1.在Src下面建一个component文件夹来放所有组件,assets文件夹来放静态资源;
2.App.js中的render模板,利用jsx语法(JavaScript和HTML混用),这里是根组件,但一般把代码多写在子组件中(在component文件夹中写子组件),利用router来进行组件之间的挂载;组件名称首字母大写
3.在组件中的写法:import React,class 组件名称,export出去;然后在根组件中引用:import 子组件名称 from 文件路径;
//react定义数据
this.state={
name:"张三",
age:'30'
}
<p>hello react--{this.state.name}</p>{/*使用{this.state.name}进行对数据的调用*/}
5.用于父子组件传值,要在constructor里面写上props:
constructor(props){
super(props);
}
6.引入图片三种方法:
(调用本地图片)
①在顶部写上import 图片的名字 from 文件中的位置(相对路径),在render中调用用
<img src={图片的名字} />
②直接在代码中写:
<img src = {require(‘图片的相对路径’)} />
(调用远程图片)
①直接
<img src=”图片的链接”/>
7.数组的循环:利用map
8.事件和方法(即函数)
(1)定义方法:和构造函数constructor和render函数同级
(2)调用方法:直接this.方法名,注意不需要括号,加括号表示执行
(3)当需要获取数据时,①需要在调用方法时的后面加上.bind(this),使this的指向正确;②在构造函数中直接写上this.方法名.bind(this);④在方法中写上function箭头函数。
(第三种使用最多)
(4)改变数据,用this.setState({(不需要this)名字:”新的内容”})
(5)还有直接在方法里面改的
9.事件的用法:event.target来获取执行事件的DOM节点。
10.表单事件:(1)获取表单的值,用名称.target.value
11.键盘事件:(1)用名称.keyCode
12.双休数据绑定(MVVM)model,view VM:用onChange来改变
13.父子组件:
14.讲解defaultProps和propTypes(都是定义在子组件里面)
用法:
15.用axios获取服务器数据,fetch-jsonp插件的使用
16.生命周期函数:
17.React路由
import { BrowserRouter as Router, Route, Link } from 'react-router-dom';
<Router>
<div>
<header className='title'>
<Link to='/'>首页</Link>{/*Link to主要来做页面切换的*/}
<Link to='/news'>新闻</Link>
<Link to='/product'>产品</Link>
</header>
<Route exact path = '/' component={Home}/>
<Route path = '/news' component={News}/>
<Route path = '/product' component={Product}/>
</div>
</Router>
要包含在一个根组件里面。 使用方法(总结一下):
18.React中的动态路由以及get传值
补充:在App.js中动态路由配置完成后,在需要跳转的页面写上链接:
<Link to={'/content/' + value.id}>{value.title}</Link>
循环操作:
this.state.list.map((value,key)=>{
return (
<li key={key}>
<Link to={'/content/' + value.id}>{value.title}</Link>
</li>
)
})
React中get传值:
(1)动态路由配置:<Route path = '/productcontent' component={ProductContent} />
(2)跳转操作:<Link to={'/productcontent?id='+value.id}>{value.title}</Link>
this.state.list.map((value,key)=>{
return (
<li key={key}>
<Link to={'/productcontent?id='+value.id}>{value.title}</Link>
</li>
)
})
获取传值:
//要获取动态路由就在生命周期函数中获取
componentDidMount() {
//获取动态路由的传值
console.log(this.props);
}
写移动端:
像手机移动端一样显示三列布局:(1)display: flex; flex-wrap:wrap;width:33.3%;
(2)width:33.3%;float:left;
19.react解析html
19.用JavaScript实现router的跳转
20.react-router路由的嵌套
(实现左侧菜单,右侧显示内容)
21.react-router实现路由的模块化
(要放在import
的下面)
在render中进行循环:
在模块化中嵌套路由:
下面这种方法更模块化,是固定写法:
22.