React小结

安装

npm install -g create-react-app
create-react-app my-app
cd my-app
yarn start

不要使用官网的


jsx

import React from "react"

const myname = 'react';
const imgUrl= "//img03.51jobcdn.com/im/2016/logo/logo_blue.png"
function aFun(name){
	return name+' used in Fun!!!';
}

function Home(){
	return (
		<div clas="home">
			<p>i  {myname} am in homepage!</p>
			<img src={imgUrl} />
			<h2>{aFun('hahha')}</h2>
		</div>
	);

}

export default Home;

注意,jsx里面的class需要写成className,tabindex需要写成tabIndex


props和组件


home.js
function Home(props){
	return (
		<div className="home">
			<p className="hahah">i  {myname} am in homepage!</p>
			<img src={imgUrl} />
			<h2>{aFun('hahha')}</h2>
			<p>我是从props里面获取的值:{props.page}</p>
		</div>
	);

}

app.js
import Home from './home'
  <Home page="home"></Home>

avatar.js
import React from 'react'

function Avatar(props){
	return (
		<div className="box">
			<div className="logo">
				<img src={props.user.url} />
			</div>
			<div className="title">
				<p>{props.user.title}</p>
			</div>
		</div>
	);
}

export default Avatar;

app.js
 <Home page="home" obj={{url:'xxx.jpg',title:'app to avatar'}}></Home>

home.js
	<Avatar user={props.obj} />

注意,不能去修改props的值

class组件式
// class组件式
class Avatar extends React.Component{
	render(){
		return (
			<div className="box">
			<div className="logo">
				<img src={this.props.user.url} />
			</div>
			<div className="title">
				<p>{this.props.user.title}</p>
			</div>
		</div>
		)
	}
}

export default Avatar;

State

/*
* @Author: cyany_blue
* @Date:   2020-04-21 16:57:46
* @Last Modified by:   cyany_blue
* @Last Modified time: 2020-04-21 17:08:18
*/

import React from "react"

class Stated extends React.Component{
	constructor(props){
		super(props);
		this.state = { date :new Date() };
	}

	render(){
		return (
			<div className="wrapper">
				<h2>It is { this.state.date.toLocaleTimeString()}</h2>
			</div>
		);
	}
}

export default Stated;

生命周期


	componentDidMount(){
		console.log('componentDidMount');
		this.timer = setInterval(()=>{
			this.tick();
		},1000);
	}
	componentWillUnmount(){
		console.log('componentWillUnmount');
		this.timer = null;
	}

	 tick(){ //注意不要写成function tick()
		this.setState({
			date:new Date()
		});

            //更改state必须使用setState()
	}


猜你喜欢

转载自www.cnblogs.com/cyany/p/12746045.html