提交react学习代码
This commit is contained in:
parent
306dc6cdfa
commit
60c77f32f4
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>index </title>
|
||||
<script src="../react.development.js"></script>
|
||||
<script src="../react-dom.development.js"></script>
|
||||
<script src="../babel.min.js"></script>
|
||||
<script type="text/babel" src="index.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,29 @@
|
|||
//ReactDOM.render(<h1>Hello, world</h1>, document.getElementById('root'));
|
||||
// 1.变量的使用
|
||||
// 在JSX中嵌入表达是
|
||||
// const name = 'Cuto'
|
||||
// const e = <h1>Hello, {name}</h1>
|
||||
// ReactDOM.render(e, document.getElementById('root'));
|
||||
|
||||
// 2.函数的使用
|
||||
// function test(){
|
||||
// return "handsome cuto!"
|
||||
// }
|
||||
// const e = <h1>Hello, {test()}</h1>
|
||||
// ReactDOM.render(e, document.getElementById('root'));
|
||||
|
||||
|
||||
// 3.防止xss注入
|
||||
// const title = "<script>alert('111')</script>"
|
||||
// const e = <h1>Hello, {title}</h1>
|
||||
// ReactDOM.render(e, document.getElementById('root'));
|
||||
|
||||
|
||||
const content = (
|
||||
<div>
|
||||
<h1>hello, cuto</h1>
|
||||
<br/>
|
||||
<p>Love cuto</p>
|
||||
</div>
|
||||
);
|
||||
ReactDOM.render(content, document.getElementById('root'));
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>index </title>
|
||||
<script src="../react.development.js"></script>
|
||||
<script src="../react-dom.development.js"></script>
|
||||
<script src="../babel.min.js"></script>
|
||||
<script type="text/babel" src="index.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,41 @@
|
|||
// 第一种定义组件的方式
|
||||
// function Welcome(props) {
|
||||
// return <h1>hello, {props.name}</h1>;
|
||||
// }
|
||||
// ReactDOM.render(
|
||||
// Welcome({name:"cuto"}),
|
||||
// document.getElementById('root')
|
||||
// );
|
||||
|
||||
|
||||
///第二种定义组件的方式
|
||||
// class Welcome extends React.Component {
|
||||
// render() {
|
||||
// return <h1>hello, {this.props.name}</h1>;
|
||||
// };
|
||||
// }
|
||||
// const e= <Welcome name="cuto"/>;
|
||||
// ReactDOM.render(
|
||||
// e,
|
||||
// document.getElementById('root')
|
||||
// );
|
||||
|
||||
|
||||
// 组合组件使用
|
||||
class Welcome extends React.Component {
|
||||
render() {
|
||||
return <h1>hello, {this.props.name}</h1>;
|
||||
};
|
||||
}
|
||||
|
||||
const e = (
|
||||
<div>
|
||||
<Welcome name="cuto"></Welcome>
|
||||
<Welcome name="love"></Welcome>
|
||||
</div>
|
||||
);
|
||||
|
||||
ReactDOM.render(
|
||||
e,
|
||||
document.getElementById('root')
|
||||
);
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>index </title>
|
||||
<script src="../react.development.js"></script>
|
||||
<script src="../react-dom.development.js"></script>
|
||||
<script src="../babel.min.js"></script>
|
||||
<script type="text/babel" src="index.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,42 @@
|
|||
|
||||
|
||||
// // 不推荐的方式
|
||||
// function tick() {
|
||||
// const e = <h1>现在时间是{new Date().toLocaleTimeString()}</h1>;
|
||||
// ReactDOM.render(
|
||||
// e,
|
||||
// document.getElementById('root')
|
||||
// );
|
||||
// }
|
||||
// setInterval(tick, 1000);
|
||||
|
||||
|
||||
// 通过state 添加自定属性 触发刷新
|
||||
class Clock extends React.Component {
|
||||
constructor(props){
|
||||
super(props);
|
||||
this.state = {date: new Date()};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.timerId = setInterval(()=> this.tick(), 1000);
|
||||
}
|
||||
componentWillUnmount() {
|
||||
clearInterval(this.timerId);
|
||||
}
|
||||
|
||||
tick() {
|
||||
this.setState({
|
||||
date: new Date()
|
||||
});
|
||||
}
|
||||
render() {
|
||||
return <h1>现在时间, {this.state.date.toLocaleTimeString()}</h1>;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
ReactDOM.render(
|
||||
<Clock/>,
|
||||
document.getElementById('root')
|
||||
);
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>index </title>
|
||||
<script src="../react.development.js"></script>
|
||||
<script src="../react-dom.development.js"></script>
|
||||
<script src="../babel.min.js"></script>
|
||||
<script type="text/babel" src="index.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,57 @@
|
|||
// 通过state 添加自定属性 触发刷新
|
||||
class Test extends React.Component {
|
||||
constructor(props){
|
||||
console.log("触发构造函数");
|
||||
super(props);
|
||||
}
|
||||
|
||||
componentWillMount() {
|
||||
console.log('componentWillMount')
|
||||
}
|
||||
componentDidMount() {
|
||||
console.log('componentDidMount')
|
||||
}
|
||||
componentWillReceiveProps(newProps) {
|
||||
console.log('componentWillReceiveProps!')
|
||||
}
|
||||
shouldComponentUpdate(newProps, newState) {
|
||||
return true;
|
||||
}
|
||||
componentWillUpdate(nextProps, nextState) {
|
||||
console.log('componentWillUpdate!');
|
||||
}
|
||||
componentDidUpdate(prevProps, prevState) {
|
||||
console.log('componentDidUpdate!')
|
||||
}
|
||||
componentWillUnmount() {
|
||||
console.log('componentWillUnmount!')
|
||||
}
|
||||
render() {
|
||||
return <h1>我的数字, {this.props.myNumber}</h1>;
|
||||
};
|
||||
}
|
||||
|
||||
class Button extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {data: 0};
|
||||
this.setNewNumber = this.setNewNumber.bind(this);
|
||||
}
|
||||
|
||||
setNewNumber() {
|
||||
this.setState({data: this.state.data + 1})
|
||||
}
|
||||
render() {
|
||||
return (
|
||||
<div>
|
||||
<button onClick = {this.setNewNumber}>INCREMENT</button>
|
||||
<Test myNumber = {this.state.data}></Test>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
ReactDOM.render(
|
||||
<Button/>,
|
||||
document.getElementById('root')
|
||||
);
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue